python使用re模塊爬取豆瓣Top250電影
爬?四步原理:
1.發送請求:requests
2.獲取相應數據:對方及其直接返回
3.解析并提取想要的數據:re
4.保存提取后的數據:with open()文件處理
爬?三步曲:
1.發送請求
2.解析數據
3.保存數據
注意:豆瓣網頁爬蟲必須使用請求頭,否則服務器不予返回數據
import reimport requests# 爬?三部曲:# 1.獲取請求def get_data(url, headers): response = requests.get(url, headers=headers) # 如果爬取的是html文本就是用.text方法獲取文本數據,如果爬取的是音視頻就用.content方法獲取二進制流數據 # print(response.text) # 獲取相應文本,比如html代碼 return response.text# 2.解析數據def parser_data(text): # re.findall('正則表達式', '過濾的文本', re.S) # 匹配模式:re.S 全局模式 data = re.findall( ’<div class='item'>.*?<a href='http://www.aoyou183.cn/bcjs/(.*?)' rel='external nofollow' >.*?<span class='title'>(.*?)</span>.*?<span property='v:average'>(.*?)</span>.*?<span>(.*?)人評價</span>’, text, re.S) for move_info in data: yield move_info# 3.保存數據def save_data(res_list_iter): with open('豆瓣TOP250.txt', 'a', encoding='utf-8') as f: for i in res_list_iter: move_page, move_title, move_score, move_evaluation = i # print(move_page, move_title, move_score, move_evaluation) str1 = f'電影名字:《{move_title}》 電影評分:{move_score} 電影評價:{move_evaluation} 電影詳情頁:{move_page}n' f.write(str1)# 使用請求頭請求數據headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36’}n = 0# 獲取10個鏈接for i in range(10): url = f'https://movie.douban.com/top250?start={n}&filter==' n += 25 text = get_data(url, headers) res_list_iter = parser_data(text) save_data(res_list_iter)
執行結果:
以上就是python使用re模塊爬取豆瓣Top250電影的詳細內容,更多關于python 爬取豆瓣電影的資料請關注好吧啦網其它相關文章!
相關文章: