簡體   English   中英

硒湯和需求量有什么區別?

[英]What is difference between soup of selenium and requests?

我正在從Web上爬行一些信息,但是當我使用Selenium和請求時卻得到了不同的結果

driver.get('https://www.jobplanet.co.kr/companies/322493/benefits/%EC%A7%80%EC%97%90%EC%9D%B4%EC%B9%98%EC%94%A8%EC%A7%80')
soup= BeautifulSoup(driver.page_source, 'html.parser')
sample= soup.find_all('div', class_='accord_hd')`

要求

response= requests.get('https://www.jobplanet.co.kr/companies/322493/benefits/%EC%A7%80%EC%97%90%EC%9D%B4%EC%B9%98%EC%94%A8%EC%A7%80')
soup= BeautifulSoup(response.content, 'html.parser')
sample= soup.find_all('div', class_='accord_hd')`

使用Selenium時,它返回一個空列表。 但是在請求中,有一個包含一些字符串的列表。

我之前經歷過類似的事情,所以我想知道這里發生了什么

requests將獲取/返回初始的html源代碼。

selenium將模擬/自動化瀏覽器以打開網頁,然后您可以拉出用於呈現該頁面的html源。

這兩個之間的區別是,如果網站是動態創建的,則requests不支持該渲染/ java腳本。 由於selenium實際上會打開瀏覽器以顯示頁面,因此將允許頁面在獲取html源之前呈現其內容。

這就是為什么在使用requestsselenium時可能會得到兩種不同的響應的原因。

但是,在上面給出的特定代碼中,使用Selenium和使用requests ,我得到的輸出完全相同

碼:

from bs4 import BeautifulSoup
from selenium import webdriver
import requests

driver = webdriver.Chrome('C:/chromedriver_win32/chromedriver.exe')
driver.get('https://www.jobplanet.co.kr/companies/322493/benefits/%EC%A7%80%EC%97%90%EC%9D%B4%EC%B9%98%EC%94%A8%EC%A7%80')
soup= BeautifulSoup(driver.page_source, 'html.parser')
sample_selenium= soup.find_all('div', class_='accord_hd')

driver.close()



import requests

response = requests.get('https://www.jobplanet.co.kr/companies/322493/benefits/%EC%A7%80%EC%97%90%EC%9D%B4%EC%B9%98%EC%94%A8%EC%A7%80')
soup= BeautifulSoup(response.content, 'html.parser')
sample_requests= soup.find_all('div', class_='accord_hd')



print ('Selenium: %s items\nRequests: %s items' %(len(sample_selenium), len(sample_requests)))

輸出:

Selenium: 11 items
Requests: 11 items

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM