Top100貓眼電影爬取案例

2021-10-07 05:27:52 字數 2468 閱讀 3130

#儲存請求頭的列表

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...