request 常用的幾種方法:
xpath
1.首先通過Requests庫獲取網頁數據
2.通過網頁解析,得到想要的數據或者新的鏈接
3.網頁解析可以通過 Xpath 或者其它解析工具進行,Xpath 在是一個非常好用的網頁解析工具
一個簡單的爬蟲-requests+xpath
import requests
from lxml import etree
url = 'https://movie.douban.com/subject/1292052/'
data = requests.get(url).text #讀取網頁內容
s=etree.HTML(data) #解析網頁內容
film=s.xpath('//*[@id="content"]/h1/span[1]/text()') #使用xpath讀取內容
director=s.xpath('//*[@id="info"]/span[1]/span[2]/a/text()')
actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()')
time=s.xpath('//*[@id="info"]/span[13]/text()')
print('電影名稱:',film)
print('導演:',director)
print('主演:',actor)
print('片長:',time)
作者:DC學院
鏈接:https://www.jianshu.com/p/b86e46c9478b
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
實際上主演是這麼來的
actor1=s.xpath('//*[@id="info"]/span[3]/span[2]/a[1]/text()') #主演1
actor2=s.xpath('//*[@id="info"]/span[3]/span[2]/a[2]/text()') #主演2
actor3=s.xpath('//*[@id="info"]/span[3]/span[2]/a[3]/text()') #主演3
觀察上面的代碼,發現獲取不同的 主演 信息時,區別只在於 a[ ]中的索引不同。實際上,要一次性的獲取所有主演的信息時,用不加數字的 a 表示即可。代碼如下:
actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()') #主演