使用爬蟲爬取貓眼電影top100的資訊

2021-09-28 15:23:14 字數 1509 閱讀 7006

分析:

確定我們所需要抓取的目標站點為開啟之後便可以看到榜單資訊

排名第一的電影是霸王別姬,頁面中顯示的有效資訊有影片名稱、主演、上映時間、上映地區、評分、等資訊。(即是我們需要提取的資訊

import requests

import re

import json

def get_one_page(url):

headers=

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

if response.status_code== 200:

return response.text

return none

def main(offset): #抓取貓眼首頁資訊

url =''+str(offset)

html = get_one_page(url)

for i in parse_one_page(html):

write_to_file(i)

print(i)

def parse_one_page(html): #正則提取資料

pattern = re.compile( #括號內的正規表示式才是我需要的資訊,所以用()獲取

'.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?)

.' '*?releasetime.*?>(.*?)

.*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.s)

items = re.findall(pattern,html)

for item in items: #yield關鍵字,是乙個生成器,在這裡相當於return強化版,即使說可以多次返回return給函式,然後通過for迴圈從函式中提取,或者通過parse_one_page(html).next()提取

yield

def write_to_file(content):

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

print(type(json.dumps(content)))

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

if __name__ == '__main__':

for i in range(10):

main(offset=i*10)

部分運算結果:

selenium動態爬取貓眼前top100

selenium用到的是selenium中webdriver from selenium import webdriver webdriver提供了瀏覽器的啟動介面 webdriver.firefox 多視窗切換 這裡的多視窗是指的,多個視窗,不是乙個視窗多次進入不同的 通過browser.wind...

爬蟲 python3 抓取貓眼電影top100

使用urllib,request,和正規表示式,多執行緒進行秒抓,以及異常處理結果 import urllib,re,json from multiprocessing import pool 多程序,秒抓 def get one page url try response urllib.reque...

python爬蟲爬取貓眼電影Top100

很早就對爬蟲有所耳聞,於是乎就在網上買了一本python爬蟲的書,在學習的過程中也想做一些筆記與大家分享分享,勿噴 2.1.貓眼電影top100 2.2.f12開啟控制台,在response中找到需要的頁面資訊 如圖 2.3.發現每一部電影都是乙個dd標籤,我們需要爬取它的排名 位址 電影名稱 主演...