宣告:最近在學習崔慶才老師的《python3 網路爬蟲開發實戰》整理筆記如下:
利用requests 和正規表示式提取出貓眼電影 top100 的電影名稱、時間、評分、等資訊。
在瀏覽器中開啟貓眼電影的榜單頁面:
目標url為:
偏移量:offset=10
首先抓取第一頁的內容,實現 get_one_page 方法,並給它傳入 url 引數。
具體**如下:
def
get_one_page
(url)
:try
: headers =
response = requests.get(url, headers=headers)
if response.status_code ==
200:
return response.text
return
none
except requestexception:
return
none
開啟網頁原始碼(右鍵->檢視源**即可),提取出來第一條目的源**如下:
">霸王別姬
"star">
主演:張國榮,張豐毅,鞏俐
"movie-item-number score-num">
"score">"integer">9.
"fraction">5
用正規表示式來提取這裡面的一些電影資訊:
排名資訊:
. ?board-index.?>(.
.?board-index.
?>(.?).
?data-src="(.?)"
名稱資訊:
. ?board-index.?>(.
?).?data-src="(.
?)".?name.
?a.?>(.
?)主演、發布時間、評分等內容:
.?board-index.
?>(.?).
?data-src="(.?)".
?name.?a.
?>(.?).
?star.?>(.
?).?releasetime.
?>(.?).
?integer.?>(.
?).?fraction.
?>(.?).*?
將一頁的 10 個電影資訊都提取出來,這是乙個列表形式,提取出電影的排名、、標題、演員、時間、評分等內容了,並把它賦值為乙個個的字典,形成結構化資料。寫入檔案,將提取的結果寫入檔案,這裡直接寫入到乙個文字檔案中。這裡通過 json 庫的 dumps 方法實現字典的序列化,並指定 ensure_ascii 引數為 false,這樣可以保證輸出結果是中文形式而不是 unicode 編碼。
**如下:
import json
import requests
from requests.exceptions import requestexception
import re
import time
defget_one_page
(url)
:try
: headers =
response = requests.get(url, headers=headers)
if response.status_code ==
200:
return response.text
return
none
except requestexception:
return
none
defparse_one_page
(html)
: pattern = re.
compile
('.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">+
'.*?>(.*?).*?star">(.*?)
.*?releasetime">(.*?)'+
'.*?integer">(.*?).*?fraction">(.*?).*?'
, re.s)
items = re.findall(pattern, html)
for item in items:
yield
defwrite_to_file
(content)
:with
open
('result.txt'
,'a'
, encoding=
'utf-8'
)as f:
f.write(json.dumps(content, ensure_ascii=
false)+
'\n'
)def
main
(offset)
: url =
'offset='
+str
(offset)
html = get_one_page(url)
for item in parse_one_page(html)
:print
(item)
write_to_file(item)
if __name__ ==
'__main__'
:for i in
range(10
):main(offset=i *10)
time.sleep(
1)
Python爬取貓眼電影
不多說,直接上 import requests import re import random import pymysql import time 連線資料庫 db pymysql.connect host localhost port 3306,user root passwd a db pyt...
python反反爬,爬取貓眼評分
用fontcreator開啟base.woff.檢視對應字型關係 初始化時將對應關係寫入字典中。1 usr bin env python2 coding utf 83 author 南樓 45 6import requests 7importre8 importos9 10from fonttool...
python爬取貓眼電影排行
完整的 如下在這裡 閒著沒事,把解析html中的正則方法改用了xpath與beautifulsoup,只能說各有各的優點吧。正則的話,提取資訊可以連貫,一次性提取出所有需要的資訊,當然前提是你的正則式子沒有寫錯,所以說正則寫起來相比xpath與beautifulsoup來說要複雜一下,提取出錯後,除...