爬取豆瓣影評資料步驟:
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...