爬蟲 python3 抓取貓眼電影top100

2022-03-22 09:25:02 字數 1744 閱讀 8281

使用urllib,request,和正規表示式,多執行緒進行秒抓,以及異常處理結果:

import urllib,re,json

from multiprocessing import pool#多程序,秒抓

def get_one_page(url):

try:

response=urllib.request.urlopen(url)

html=response.read().decode('utf-8')

if response.status==200:

return html

return none

except:

return none

#另一種方法:

#import requests

# from requests.exceptions import requestexception

# def get_one_page(url):

# try:

# response=requests.get(url)

# if response.status_code==200:

# return response.text

# return none

# except requestexception:

# return none

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')#上句encoding與本句ensure是為了保證中文的正常顯示

f.close()

def main(offset):

url=''+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(i*10)

pool=pool()

pool.map(main,[i*10 for i in range(10)])

d:\anaconda3\python.exe c:/users/administrator/desktop/project/test2.py

process finished with exit code 0

view code

python抓取貓眼電影列表

分析url分頁規則 其中offset引數值為0到90 用到的庫 pyquery html解析器,語法類似jqueryfake useragent 用於偽造頭部瀏覽器資訊,防爬蟲遮蔽 相關 import requests from requests.exceptions import requeste...

抓取貓眼電影排行

首先將第乙個頁面抓取下來 import requests 抓取乙個 def get one page url headers response requests.get url,headers headers 判斷響應的狀態碼 if response.status code 200 return r...

抓取貓眼電影排行

今天學習 python3網路爬蟲 第三章時,在章節尾部的爬取貓眼電影排行練習中成功實現,但這一部分有點不明白,先記錄下來 def get one page url try headers response requests.get url,headers headers if response.st...