爬取豆瓣top250

2021-10-21 01:19:38 字數 3288 閱讀 1323

案例實現

需求:要爬取豆瓣top250的電影資訊資料(標題 評分 引言 詳情頁的url) 10頁的資料

都要爬取 並寫入到csv檔案中

第一頁

第二頁

第三頁

第四頁

一共是250條 25頁

分析:(page-1) * 25

總結 第乙個 str格式化的運用

解決辦法 先是找規律 進行格式化的替換

doubanurl = ''

s1 = '鋼鐵俠'

s2 = '蜘蛛俠'

r = f'hello,'

print(r)

s = 'i like {}' # str.format()

w = s.format('python')

print(w)

第二個 xpath語法的運用

第一步 先生成乙個element物件

第二步 用xpath進行導航

第三個 csv檔案的儲存

第四個 小細節 例如 非空判斷

# 非布林值判斷 只要不是空性的 統統代表是true 反之 空性 () {} none 0...

if quote:

quote = quote[0]

else:

quote =''

douban.py

# @ time : 2021/2/25 12:19

# @ author : ellen

import requests

from lxml import etree

import csv

# headers =

## response = requests.get('', headers=headers)

# response.encoding = 'utf-8'

# # headers = response.request.headers # 請求頭資訊

# print(response.text)

# print(headers)

# 第一步 目標**

doubanurl =

''# 第二步 發起請求獲取響應結果

defgetsource

(url)

: headers =

response = requests.get(url, headers=headers)

response.encoding =

'utf-8'

return response.text

# 第三步 解析資料 電影的名字 評分 引言 詳情頁的url

defgeteveryitem

(source)

: html_element = etree.html(source)

movieitemlist = html_element.xpath(

"//div[@class='info']"

)# 定義乙個空的列表 儲存電影資料 [, ]

movielist =

for eachmovie in movieitemlist:

# 定義乙個字典儲存電影資訊 k-v

moviedict =

title = eachmovie.xpath(

'div[@class="hd"]/a/span[@class="title"]/text()'

)# 主標題

othertitle = eachmovie.xpath(

'div[@class="hd"]/a/span[@class="other"]/text()'

)# 副標題

link = eachmovie.xpath(

'div[@class="hd"]/a/@href')[

0]# 詳情頁url

star = eachmovie.xpath(

'div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()')[

0]# 評分

quote = eachmovie.xpath(

'div[@class="bd"]/p[@class="quote"]/span/text()'

)# 引言 名句

# 非布林值判斷 只要不是空性的 統統代表是true 反之 空性 () {} none 0...

if quote:

quote = quote[0]

else

: quote =

'' moviedict[

'title']=

''.join(title+othertitle)

# 主標題+副標題

moviedict[

'url'

]= link # 詳情頁url

moviedict[

'star'

]= star # 評分

moviedict[

'quote'

]= quote # 引言

print

(movielist)

return movielist

# 第四部 儲存資料

defwritedate

(movielist)

:with

open

('douban.csv'

,'w'

, encoding=

'utf-8'

, newline='')

as file_obj:

writer = csv.dictwriter(file_obj, fieldnames=

['title'

,'star'

,'quote'

,'url'])

writer.writeheader(

)for each in movielist:

writer.writerow(each)

if __name__ ==

'__main__'

: movielist =

for i in

range(10

):# 獲取目標url

pagelink = doubanurl.

format

(i *25)

source = getsource(pagelink)

movielist += geteveryitem(source)

writedate(movielist)

爬取豆瓣Top250

requests庫可以自動爬取html頁面,自動網路請求提交。安裝方法 pip install requests requests庫主要有7個方法 首先開啟網頁 豆瓣top250 然後f12,得到如下圖 我們要找的內容在紅框裡面。這個頁面有25個電影,第乙個頁面 第二個頁面 我們可以觀察到 每個頁面...

爬取豆瓣TOP250書單

小白學習爬蟲 爬取豆瓣top250的書,正好本人也喜歡看書 思路分析 這是top250第一頁的鏈結 start 25第二頁的鏈結 start 50第三頁的鏈結 將第一頁鏈結改為?start 0也是可以訪問的,每一頁數字加25,構建10頁 如下 urls start format str i for ...

爬取豆瓣電影TOP250

利用css選擇器對電影的資訊進行爬取 import requests import parsel import csv import time import re class cssspider def init self self.headers defget dp self,url respon...