相對於selenium,phantomjs的無介面瀏覽器占用記憶體較小,在爬取資料的時候無需自動開啟介面,但是可以通過設定來實現selenium的我介面抓取,具體操作:
1from
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模擬瀏覽器,然後設定瀏覽器高度足夠長,然後延時使之能夠將頁面的內容都能夠載入出來
1from
selenium import webdriver
2 driver =webdriver.firefox()
3 driver.set_window_size(1000,30000
)4 driver.get
(url)
5 time.sleep(5)
方法二: 通過模擬瀏覽器去執行js去拉動滑滾條
1from
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表示式,檢視他們的工作方式及從爬取的網頁中提取的資料。在編...