#!/usr/bin/env python
# -*- coding:utf-8 -*-
#encoding = utf-8
import json
import pandas as pd
import requests
from gevent.pool import pool
from requests.exceptions import requestexception
import re
import csv
defget_one_page
(url):
try:
hd =
response = requests.get(url, headers=hd)
if response.status_code==200:
return response.text
return
none
except requestexception:
return
none
defparse_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
defwrite_to_file
(content):
with open('result.txt', 'a', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=false) + '\n')
defmain
(): con_list =
for i in range(10):
url = '' + str(i*10)
html = get_one_page(url)
# parse_one_page(html)
# print(html)
for item in parse_one_page(html):
# print(item)
# write_to_file(item) #寫入到txt檔案中
print(con_list)#測試是否為[{}{}...]檔案
df = pd.dataframe(con_list, columns=['id', 'image', 'title', 'actor', 'time', 'score'])
# print(df)# 輸出pandas結果集
df.to_csv('./myfir.csv', index=false, encoding='utf_8_sig')
if __name__ == '__main__':
main()
# for i in range(10):
# pool =pool()
# pool.map(main, [i*10 for i in range(10)])
# 將陣列中的每個元素提取出來當作函式的引數,建立乙個個程序,放進程式池中
# 第乙個引數是函式,第二個引數是乙個迭代器,將迭代器中的數字作為引數依次傳入函式中
Top100貓眼電影爬取案例
儲存請求頭的列表 ua list mozilla 5.0 compatible msie 9.0 windows nt 6.1 win64 x64 trident 5.0 net clr 2.0.50727 slcc2 net clr 3.5.30729 net clr 3.0.30729 medi...
python爬取貓眼電影top100
最近想研究下python爬蟲,於是就找了些練習專案試試手,熟悉一下,貓眼電影可能就是那種最簡單的了。1 看下貓眼電影的top100頁面 分了10頁,url為 我們發起請求,得到相應 我們我使用的是requests庫,這是乙個第三方的庫。2 利用正則解析爬取下的頁面 當然你也可以使用xpath和bs4...
爬取貓眼TOP100
學完正則的乙個小例子就是爬取貓眼排行榜top100的所有電影資訊 看一下網頁結構 可以看出要爬取的資訊在標籤和標籤中間 正規表示式如下 pattern re.compile board index.data src name.a.star releasetime integer fraction r...