#儲存請求頭的列表
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; media center pc 6.0; infopath.3; .net4.0c; tablet pc 2.0; .net4.0e)",,
"mozilla/5.0 (windows nt 6.1; wow64; rv:6.0) gecko/20100101 firefox/6.0"
,"opera/9.80 (windows nt 6.1; u; zh-cn) presto/2.9.168 version/11.50"
,"mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; gtb7.0)",]
from urllib import request
import re
import random
import time
import csv
class
maoyanspider
(object):
def__init__
(self)
: self.url=
""#新增計數變數
self.i=
0#請求
defget_html
(self,url)
: headers=
#隨機獲取請求頭
req=request.request(url=url,headers=headers)
res=request.urlopen(req)
html=res.read(
).decode(
)# 直接呼叫解析函式
self.parse_html(html)
#解析def
parse_html
(self,html)
: re_bds=
'.*?title=' \
'"(.*?)".*?class="star">(.*?)
.*?class="releasetime">(.*?)
' pattern=re.
compile
(re_bds,re.s)
r_list=pattern.findall(html)
#直接呼叫寫入函式
self.write_html(r_list)
#儲存def
write_html
(self,r_list)
: item=
#以a方式追加寫入
with
open
("maoyan.csv"
,"a"
,newline=
"",encoding=
"utf-8"
)as f:
writer=csv.writer(f)
#初始化物件
for r in r_list:
item[
"name"
]= r[0]
.strip(
) item[
"star"
]= r[1]
.strip(
) item[
"time"
]= r[2]
.strip()[
5:15]
#切取後面的時間段
print
(item)
l=[item[
"name"
],item[
"star"
],item[
"time"]]
writer.writerow(l)
self.i +=
1#主函式
defrun
(self)
:for offset in
range(0
,91,10
):#從0到90以步長為10爬取10個頁面
url=self.url.
format
(offset)
self.get_html(url)
print
("爬取電影數量:"
,self.i)
if __name__ ==
'__main__'
: start=time.time(
) spider=maoyanspider(
) spider.run(
) end=time.time(
)print(%
(end-start)
)
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...
爬取貓眼top100
導入庫 json用於讀取和寫入檔案 requests請求html requestexception用於獲取requests錯誤 time定義時間 re正規表示式 import json import requests from requests.exceptions import requestex...