python爬蟲實戰 爬取豆瓣影評資料

2021-10-03 06:29:22 字數 3271 閱讀 1471

爬取豆瓣影評資料步驟:

1、獲取網頁請求

2、解析獲取的網頁

3、提速資料

4、儲存檔案

# 1、匯入需要的庫

import urllib.request

from bs4 import beautifulsoup

# 隨機數的庫

import random

# 時間庫

import time

# **庫

import csv

# 2、分多個瀏覽器訪問豆瓣網,防止訪問多頁時被拒絕

# 每個瀏覽器在請求資料的時候,請求頭是不一樣

# 計算機命名規則:駝峰命名法

defgetrequest

(url)

:# 谷歌瀏覽器

header1 =

# 火狐瀏覽器

header2 =

# 將瀏覽器裝入列表裡

list

=[header1,header2]

# 隨機取乙個請求頭 len(list)-1:列表長度-1

index = random.randint(0,

len(

list)-

1)# 隨機用乙個請求頭,開始訪問位址

req = urllib.request.request(url=url,headers=

list

[index]

)# 返回結果

return req

# 封裝函式,爬取資料

defgetdata

(url,commentall)

:# 獲取處理後的請求

req = getrequest(url)

# 開啟**

html = urllib.request.urlopen(req)

# 讀取資料(data得到所有資料)

data = html.read(

)# 輸出爬取到的所有資料,進製形式顯示

# print(data)

# 定義soup物件,解析網頁

soup = beautifulsoup(data,

"html.parser"

)# ["資料"] 陣列裡只有乙個元素----資料

comments = soup.select(

"#comments")[

0]# print(comments)

items = comments.select(

".comment-item"

)# print(items)

for i in items:

# 找到裝著使用者名稱和星級的span標籤,class名為comment-info

info = i.select(

".comment-info")[

0]# print(info)

# 讀出使用者名稱的a標籤裡面的字串使用者名稱

# author = info.select("a")[0].string 資料在列表裡

author = info.find(

"a")

.string

# print(author)

# 取星級,找到裝著星級的span標籤,讀取title值

# ["看過",星級,時間]

star = info.select(

"span")[

1]["title"

]# print(star)

short = i.select(

".short")[

0].string

# print(short)

talk =

# print(talk)

# 將字典型別的資料,加到列表裡面

# 返回整個列表

return commentall

# 封裝函式,把資料裝入**中

defwriteinto

(commentall)

:# 開啟** as從命名 file

# 引數1:**名稱

# 引數2:"a+"追加模式 "w"寫入模式 "r"讀取模式

# wb二進位制,不帶b就是文字

# 引數3:資料格式為utf-8

# 引數4:newline 新行,空行

with

open

("douban.csv"

,"a+"

,encoding=

"utf-8"

,newline="")

asfile

:# 向**寫入資料

writer = csv.writer(

file

)# 資料在commentall列表,迴圈遍歷列表,讀取資料

for i in commentall:

info =

[i["author"

],i[

"star"

],i[

"short"]]

# 把資料寫入**

writer.writerow(info)

# 關閉**

file

.close(

)# 函式的入口

# 直接輸入main,有提示

if __name__ ==

'__main__'

:# 初始化乙個空列表,將得到的所有資料

commentall =

# range()產生序列 0.1.2,爬取3頁

for i in

range(0

,3):

# 爬取的網頁位址

# limit=20 每一頁讀取20條資料

# start = 80 從第幾條讀取資料 20-39 40-59 60-79 80-99

url =

""%(i*20)

# 呼叫函式,爬取資料

getdata(url,commentall)

# 每爬取乙個頁面資料,休息10秒,防止被封號

time.sleep(10)

# 呼叫函式,爬取完資料,裝入**

writeinto(commentall)

# 將**用 記事本 開啟,另存為ansi格式

# 如果你要運算元據,還要轉回utf-8

1、作者個人**

2、作者csdn

3、作者

python爬取豆瓣網頁短評實戰!

首先我們開啟我的父親母親的網頁介面 鏈結 可以觀察到如下介面以及讀者對本書的評價 接下來我們直接附上 書名 我的父親母親 出版社 南海出版公司 原作名 alfred and emily 譯者 匡詠梅 出版年 2013 1 頁數 238 定價 29.50元 裝幀 精裝 叢書 新經典文庫 萊辛作品 is...

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...