學(xué)習(xí)python以來(lái)的第一爬蟲(chóng),參考《Python3 網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)踐》
爬取目標(biāo)為:貓眼電影Top100榜
完全是依葫蘆畫(huà)瓢,首先請(qǐng)求網(wǎng)頁(yè)內(nèi)容,然后在通過(guò)正則表達(dá)式提取自己感興趣的數(shù)據(jù),最后轉(zhuǎn)成json格式存入文本文件。
import json
import time
import requests
import re
def get_one_page(url):
headers = {
'User-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
resp = requests.get(url, headers=headers)
if resp.status_code == 200:
return resp.text
return None
def parse_page(html):
pattern = re.compile('
.*?board-index.*?>(.*?).*?data-src="(.*?)".*?'
'name.*?
(.*?).*?star">(.*?)
.*?releasetime">(.*?)
.*?
', re.S)
items = re.findall(pattern, html)
for item in items:
yield {
'index': item[0],
'img': item[1],
'title': item[2].strip(),
'actor': item[3].strip()[3:] if len(item[3]) > 3 else '',
'time': item[4].strip()[5:] if len(item[4]) > 5 else ''
}
def main(offset):
url = 'http://maoyan.com/board/4?offset=' + str(offset)
html = get_one_page(url)
# print(html)
for itm in parse_page(html):
# print(itm)
write_to_file(itm)
def write_to_file(content):
with open("result.txt", 'a', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=False) + '\n')
if __name__ == '__main__':
for i in range(10):
main(i * 10)
time.sleep(1)
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
