爬取當當網 Top 500 本五星好評書籍

2022-05-01 22:15:11 字數 1512 閱讀 1472

開啟這個書籍排行榜的位址 很容易就能定位到書籍資訊:

難點在於如何寫乙個正則。。

直接看**:

import

requests

import

reimport

json

headers =

defwrite_item_to_file(item):

with open(

'book.txt

', '

a', encoding='

utf-8

') as f:

f.write(json.dumps(item, ensure_ascii=false) + '\n'

) f.close()

defrequest_html(url):

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

if response.status_code == 200: #

正常訪問一般返回200

return

response.text

except

requests.requestexception:

return

none

defparse_html(html):

pattern = re.compile('

.*?list_num.*?(\d+).

.*?.*?class="star">.*?class="tuijian">(.*?).*?class="publisher_info">.*?target="_blank">(.*?).*?class="biaosheng">.*?(.*?)

.*?¥(.*?).*?

',re.s)

items =re.findall(pattern,html)

for item in

items:

yield

defget_titles(page):

url = '

' +str(page)

html =request_html(url)

items = parse_html(html) #

解析過濾我們想要的資訊

for item in

items:

write_item_to_file(item)

print(item['

id'] + '

.' + item['

title'])

if__name__ == "

__main__":

for i in range(1,25):

get_titles(i)

總結:1. yield的用法

2. json.dumps()將python資料結構轉換成json

3. 寫正規表示式

爬蟲實戰 爬取當當網top500書籍

1.這個好像是爬蟲入門必備專案,練練手 練習 2.requests bs4模式,因為這個 比較簡單,不多說廢話了。usr bin env python coding utf 8 爬取當當網top500書籍 import requests from bs4 import beautifulsoup f...

爬取當當網 Top 500 本五星好評書籍

開啟這個書籍排行榜的位址 可以看到一下網頁 每一頁顯示 20 本書 你可以發現位址變了 也就是我們翻到第幾頁的時候 鏈結位址的最後乙個引數會跟著變 那麼我們等會在 python 中可以用乙個變數 來實現獲取不同頁數的內容 可以看到 我們通過 get 請求,獲得的請求頭 伺服器返回的資料 我們要的就是...

爬蟲爬取當當網書籍

初學者學習爬蟲爬取當當網會比較容易,因為噹噹沒有反爬蟲import requests from lxml import html name input 請輸入要搜尋書籍的資訊 1.準備url url format name start 1 while true print start start 1...