前言
以前寫爬蟲都是用requests包,雖然很好用,不過還是要封裝一些header啊什么的,也沒有用過無頭瀏覽器,今天偶然接觸了一下。
原因是在處理一個錯誤的時候,用到了幾個以前沒有用過的工具;這幾個工具也挺常見的,在這里一起總結一下。包括以下幾個:
selenium
requests-html
selenium
簡介
selenium是一個網頁自動化測試的工具,既然是網頁測試的,那么肯定支持各種瀏覽器了,常見的Firefox/Chrome/Safari都支持;當然,也需要你下載對應瀏覽器的驅動了。下面簡單說一下他的使用方式。
安裝
使用pip install selenium安裝selenium
安裝對應瀏覽器驅動,chrome的可以去這里下載
把驅動copy到/usr/local/bin下(非必須,不拷貝的話在使用的時候需要制定驅動的路徑)
簡單使用
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
from selenium import webdriver
driver = webdriver.chrome.webdriver.WebDriver()
driver.get("https://www.lagou.com/jobs/3490584.html")
# 獲取源碼
a = driver.page_source.encode('utf-8')
# 查找資源/tag
driver.find_element_by_xpath(u"//img[@alt='強化學習 (Reinforcement Learning)']").click()
driver.find_element_by_link_text("About").click()
# 截圖
driver.get_screenshot_as_file("./img/sreenshot1.png")
requests-html
簡介
是不是看見requests很熟悉,沒錯,這個就是會拍照又會寫代碼的requests的作者寫的又一個庫;
這個庫代碼并不是很多,都是基于其他庫封裝的,lxml/requests啊這些;使用也很簡單,遵循了他的宗旨:for humans
安裝
pip install requests-html
使用
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://python.org/')
# 獲取頁面上的鏈接
r.html.links
r.html.absolute_links
# 用css選擇器選擇一個元素
about = r.html.find('#about', first=True)
print(about.text)
# xpath
r.html.xpath('a')