**如下:
# 注意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來說要複雜一下,提取出錯後,除...