先定位到他的json資料頁面
不同的是他多出了param引數
補上就行,和json差別不大
同時,有些ajax進入後是網頁原始碼,所以需要重新利用正則或者lxml對網頁資訊進行提取,提取方法是一樣的
#這個和json動態載入時類似的,但是這個可以利用json也可以利用ajax的param引數進行抓取
import requests
import time
from fake_useragent import useragent
class
doubanspider
(object):
def__init__
(self)
: self.base_url =
'' self.i =
0def
get_html
(self, params)
: headers =
#因為有了param引數讓他得以定位
res = requests.get(url=self.base_url, params=params, headers=headers)
res.encoding =
'utf-8'
html = res.json(
)# 將json格式的字串轉為python資料型別
self.parse_html(html)
# 直接呼叫解析函式
defparse_html
(self, html)
:# html: [,,{}]
item =
for one in html:
item[
'name'
]= one[
'title'
]# 電影名
item[
'score'
]= one[
'score'
]# 評分
item[
'time'
]= one[
'release_date'
]# 列印測試
# 列印顯示
print
(item)
self.i +=
1# 獲取電影總數
defget_total
(self, typ)
:# 非同步動態載入的資料 都可以在xhr資料抓包
url =
''.format
(typ)
ua = useragent(
) html = requests.get(url=url, headers=
).json(
) total = html[
'total'
]return total
defmain
(self)
: typ =
'劇情'
typ_dict =
typ = typ_dict[typ]
total = self.get_total(typ)
# 獲取該型別電影總數量
for page in
range(0
,int
(total),20
):params =
self.get_html(params)
time.sleep(1)
print
('爬取的電影的數量:'
, self.i)
if __name__ ==
'__main__'
: spider = doubanspider(
) spider.main(
)
爬蟲 豆瓣電影爬取案例
直接上 僅供參考。目標爬取資料是某地區的 正在上映 部分的資料,如下圖 完整 如下 usr bin python coding utf 8 from lxml import etree import requests 目標 爬取豆瓣深圳地區的 正在上映 部分的資料 注意點 1 如果網頁採用的編碼方式...
Python爬蟲 爬取豆瓣電影(二)
檢視上乙個專案,請看 上乙個專案中獲取到了一定數量的電影url資訊,這次來獲取單個電影的電影詳情。對傳遞的url返回乙個名為soup的beautifulsoup物件 defget url html soup url header request body.get header proxies req...
python爬蟲爬取豆瓣電影資訊
我們準備使用python的requests和lxml庫,直接安裝完之後開始操作 目標爬取肖申克救贖資訊 傳送門 導入庫import requests from lxml import etree 給出鏈結 url 獲取網頁html前端 一行搞定,在requests中已經封裝好了 data reque...