學習python以來的第一爬蟲,參考《Python3 網絡爬蟲開發實踐》
爬取目標為:貓眼電影Top100榜
完全是依葫蘆畫瓢,首先請求網頁內容,然后在通過正則表達式提取自己感興趣的數據,最后轉成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)
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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