Scrapy框架中運用selenium的經驗

2022-06-26 15:33:10 字數 1797 閱讀 8212

相對於selenium,phantomjs的無介面瀏覽器占用記憶體較小,在爬取資料的時候無需自動開啟介面,但是可以通過設定來實現selenium的我介面抓取,具體操作:

1

from

selenium import webdriver

2# 建立chrome引數物件

3 opt =webdriver.chromeoptions()

4# 把chrome設定成無介面模式,不論windows還是linux都可以,自動適配對應引數

5opt.set_headless()

6# 建立chrome無介面物件

7 driver = webdriver.chrome(options=opt)

89 driver.get('

')10#列印內容

11print(driver.page_source)

12同時這裡的chromeoptions()也可以設定**來應對反爬,具體操作

1314

from

selenium import webdriver

15 chromeoptions =webdriver.chromeoptions()

16# 設定**

17 chromeoptions.add_argument("

--proxy-server=")

18 # 一定要注意,=兩邊不能有空格,不能是這樣--proxy-server = http://

202.20.16.82:10152

19 browser = webdriver.chrome(chrome_options =chromeoptions)

20# 檢視本機ip,檢視**是否起作用

21 browser.get("

")22print(browser.page_source)

23# 退出,清除瀏覽器快取

24 browser.quit()

注意:這裡的**的數量,我目前只用了乙個效率較高的**,因為selenium爬蟲採用的是瀏覽器渲染技術,本身速度就很慢。如果選擇的**ip速度較慢,就會大大增加爬取的時間。所以使用**前需要慎重,你要知道你使用的**是不是訪問的速度快。

selenium抓取時應對滾動載入類的介面時如何抓取?

方法一: 通過selenium模擬瀏覽器,然後設定瀏覽器高度足夠長,然後延時使之能夠將頁面的內容都能夠載入出來

1

from

selenium import webdriver

2 driver =webdriver.firefox()

3 driver.set_window_size(1000,30000

)4 driver.get

(url)

5 time.sleep(5)

方法二: 通過模擬瀏覽器去執行js去拉動滑滾條

1

from

selenium import webdriver

2 driver =webdriver.firefox()

3 driver.get

(url)

4 driver.execute_script("

window.scrollby(0,3000)")

5 time.sleep(1

)6 driver.execute_script("

window.scrollby(0,5000)")

7 time.sleep(1)

注意:這種方法你得根據載入的內容去判定下拉的位置和次數,否則會只能獲取到部分內容(建議使用方法一)

關於爬蟲框架scrapy的理解和運用

其實,做爬蟲工作,大部分會選擇的框架就是scrapy,但是scrapy具體優勢如何進行工作呢,這裡簡單的說一下個的理解。scrapy,python開發的乙個快速,高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。scrapy用途廣泛,可以用於資料探勘 監測和自動化測試。...

scrapy爬蟲框架(一) scrapy框架簡介

開啟命令列輸入如下命令 pip install scrapy安裝完成後,python會自動將 scrapy命令新增到環境變數中去,這時我們就可以使用 scrapy命令來建立我們的第乙個 scrapy專案了。開啟命令列,輸入如下命令 scrapy startproject yourproject這裡的...

python中的Scrapy框架使用

scrapysheel scrapy終端是乙個互動終端,供您在未啟動spider的情況下嘗試及除錯您的爬取 其本意是用來測試提取資料的 不過您可以將其作為正常的python終端,在上面測試任何的python 該終端是用來測試xpath或css表示式,檢視他們的工作方式及從爬取的網頁中提取的資料。在編...