爬取貓眼電影排行100電影

2021-09-22 20:10:43 字數 1325 閱讀 1296

import json

import requests

from requests.exceptions import requestexception

import re

import time

#獲取單頁的內容

def get_one_page(url):

try:

response = requests.get(url)

if response.status_code == 200:

return response.text

return none

except requestexception:

return none

#將單頁的內容正則匹配過濾取出資訊,然後建立為字典格式。這裡用了yield,返回乙個生成器,每次呼叫都執行一次next(),從上一次yield的位置再往下執行。

def parse_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

#將內容寫入檔案

def write_to_file(content):

with open('result.txt', 'a', encoding='utf-8') as f:

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

#傳入offset引數,獲取頁面資訊,過濾

def main(offset):

url = '' + str(offset)

html = get_one_page(url)

#對這個生成器進行遍歷,它會不斷向下next(),直到沒有

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爬取貓眼電影排行

完整的 如下在這裡 閒著沒事,把解析html中的正則方法改用了xpath與beautifulsoup,只能說各有各的優點吧。正則的話,提取資訊可以連貫,一次性提取出所有需要的資訊,當然前提是你的正則式子沒有寫錯,所以說正則寫起來相比xpath與beautifulsoup來說要複雜一下,提取出錯後,除...

爬取貓眼電影排行榜

匯入我們需要的模組 import reimport requests 一 獲取網頁內容 1 宣告目標url,就是爬取的 位址 base url 2 模仿瀏覽器 headers 3 發起請求 response requests.get base url,headers headers 4 接收響應的資...

爬取貓眼電影

有乙份工作需要我列出兩個電影院的每天電影排期資訊,我不想每次都要去貓眼上覆制貼上。所以做了個爬蟲 功能 能夠知道每天的電影排期資訊 使用限制 只能在當天使用,不能在前一晚上使用,後面我會再考慮修改 coding utf 8 import requests import re from bs4 imp...