學習Python系列之 爬取貓眼電影榜單

2021-10-03 07:52:12 字數 2952 閱讀 2050

宣告:最近在學習崔慶才老師的《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來說要複雜一下,提取出錯後,除...