用Python爬取貓眼上的top100評分電影

2022-07-08 06:00:15 字數 1739 閱讀 5387

**如下:

# 注意encoding = 'utf-8'和ensure_ascii = false,不寫的話不能輸出漢字

import requests

from requests.exceptions import requestexception

import re

import json

#from multiprocessing import pool

# 測試了下 這裡需要自己新增頭部 否則得不到網頁

headers =

# 得到html**

def get_one_page(url):

try:

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

if response.status_code == 200:

return response.text

return none

except requestexception:

return none

# 解析html**

def parse_one_page(html):

pattern = re.compile('.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

.*?releasetime">(.*?)

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

items = re.findall(pattern, html)

for item in items:

# 將元組形式變為字典

yield

# 寫入檔案,寫入的是乙個json格式的資料

def write_to_file(content):

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

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

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)

# 多程序(測試有bug)

# if __name__ == '__main__':

# pool = pool()

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

# pool.join()

# pool.close()

執行結果如下:

在top100.csv檔案中的資料如下:

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來說要複雜一下,提取出錯後,除...