day02:requests爬取豆瓣电影信息
生活随笔
收集整理的這篇文章主要介紹了
day02:requests爬取豆瓣电影信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、requests爬取豆瓣電影信息
-請求url:
https://movie.douban.com/top250
-請求方式:
get
-請求頭:
user-agent
cookies
二、selenium請求庫
1、什么是selenium?
起初是一個自動化測試工具,原理是驅動瀏覽器執行一些一定好操作的操作。
爬蟲本質是上就是模擬瀏覽器,所以可以使用它來做爬蟲。
2、為什么要用selenium?
優點:
-執行js代碼
-不需要分析復雜的通信流程
-可以對瀏覽器做彈窗,下拉等動作
-***** 可以獲取動態數據
-*** 破解登錄驗證
缺點:
-執行效率低
3、安裝與使用
1、安裝selenium請求庫:
pip3 install selenium
2、必須安裝瀏覽器
谷歌或者火狐
3、安裝瀏覽器驅動
http://npm.taobao.org/mirrors/chromedriver/2.38/
windows:
下載win32驅動 ''' 爬取豆瓣TOP205電影信息:電影名稱 電影url 電影導演電影主演 電影年份 電影類型電影評分 電影評論 電影簡介1、分析所有主頁的url: 第一頁: https://movie.douban.com/top250 第二頁: https://movie.douban.com/top250?start=25&filter= 第三頁: https://movie.douban.com/top250?start=50&filter= ''' import requests import re # 爬蟲三部曲 # 1.發送請求 def get_page(url):respones = requests.get(url)# print(respones.text)return respones# 2. 解析數據''' 電影排名、、、<div class="item">.*?<em class="">(>*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?導演: (.*?)主演: (.*?)<br>(.*?)2</p>.*?<span class="rating_num" .*?">(.*?)</span>.*?<span>(.*?)人評價</span>.*?<span class="inq">(.*?)</span> ''' def parse_index(html):movie_list = re.findall('<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?導演: (.*?)主演: (.*?)<br>(.*?)</p>.*?<span class="rating_num" .*?>(.*?)</span>.*?<span>(.*?)人評價</span>.*?<span class="inq">(.*?)</span>',html,re.S)return movie_list # 3. 保存數據 def save_data(movie):top, m_url, name, daoyan, actor, year_type, point, commit, desc = movieyear_type = year_type.strip('\n')data = f'''====== 歡迎尊敬官人觀賞=======電影排名:{top}電影url:{m_url}電影名稱:{name}導演導演:{daoyan}電影主演:{actor}年份類型:{year_type}電影評分:{point}電影評論:{commit}電影簡介:{desc}=======恭送官人======\n'''print(data)with open('douban_top250.text', 'a', encoding='utf-8') as f:f.write(data)print(f'電影:{name} 寫入成功,,,')if __name__ == '__main__':num=0for line in range(10):url = f'https://movie.douban.com/top250?start={num}&filter='num += 25print(url)# 1.往每個主頁發送請求index_res = get_page(url)# 2.解析主頁獲取電影信息movie_list = parse_index(index_res.text)for movie in movie_list :print(movie)#3.保存數據save_data(movie)
-請求url:
https://movie.douban.com/top250
-請求方式:
get
-請求頭:
user-agent
cookies
二、selenium請求庫
1、什么是selenium?
起初是一個自動化測試工具,原理是驅動瀏覽器執行一些一定好操作的操作。
爬蟲本質是上就是模擬瀏覽器,所以可以使用它來做爬蟲。
2、為什么要用selenium?
優點:
-執行js代碼
-不需要分析復雜的通信流程
-可以對瀏覽器做彈窗,下拉等動作
-***** 可以獲取動態數據
-*** 破解登錄驗證
缺點:
-執行效率低
3、安裝與使用
1、安裝selenium請求庫:
pip3 install selenium
2、必須安裝瀏覽器
谷歌或者火狐
3、安裝瀏覽器驅動
http://npm.taobao.org/mirrors/chromedriver/2.38/
windows:
下載win32驅動 ''' 爬取豆瓣TOP205電影信息:電影名稱 電影url 電影導演電影主演 電影年份 電影類型電影評分 電影評論 電影簡介1、分析所有主頁的url: 第一頁: https://movie.douban.com/top250 第二頁: https://movie.douban.com/top250?start=25&filter= 第三頁: https://movie.douban.com/top250?start=50&filter= ''' import requests import re # 爬蟲三部曲 # 1.發送請求 def get_page(url):respones = requests.get(url)# print(respones.text)return respones# 2. 解析數據''' 電影排名、、、<div class="item">.*?<em class="">(>*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?導演: (.*?)主演: (.*?)<br>(.*?)2</p>.*?<span class="rating_num" .*?">(.*?)</span>.*?<span>(.*?)人評價</span>.*?<span class="inq">(.*?)</span> ''' def parse_index(html):movie_list = re.findall('<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?導演: (.*?)主演: (.*?)<br>(.*?)</p>.*?<span class="rating_num" .*?>(.*?)</span>.*?<span>(.*?)人評價</span>.*?<span class="inq">(.*?)</span>',html,re.S)return movie_list # 3. 保存數據 def save_data(movie):top, m_url, name, daoyan, actor, year_type, point, commit, desc = movieyear_type = year_type.strip('\n')data = f'''====== 歡迎尊敬官人觀賞=======電影排名:{top}電影url:{m_url}電影名稱:{name}導演導演:{daoyan}電影主演:{actor}年份類型:{year_type}電影評分:{point}電影評論:{commit}電影簡介:{desc}=======恭送官人======\n'''print(data)with open('douban_top250.text', 'a', encoding='utf-8') as f:f.write(data)print(f'電影:{name} 寫入成功,,,')if __name__ == '__main__':num=0for line in range(10):url = f'https://movie.douban.com/top250?start={num}&filter='num += 25print(url)# 1.往每個主頁發送請求index_res = get_page(url)# 2.解析主頁獲取電影信息movie_list = parse_index(index_res.text)for movie in movie_list :print(movie)#3.保存數據save_data(movie)
selenium請求庫的使用:
from selenium import webdriver # web驅動 from selenium.webdriver import ActionChains # 破解滑動驗證碼的時候用的 可以拖動圖片 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys # 鍵盤按鍵操作 from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的 from selenium.webdriver.support.wait import WebDriverWait # 等待頁面加載某些元素 import time# 方式一:通過驅動打開瀏覽器 driver = webdriver.Chrome(r'E:\phyon\driver\chromedriver.exe')# 方式二:把webdriver.exe驅動放到 python解釋器安裝目錄/Scripts文件夾中 # python解釋器安裝到目錄Scripts配置環境變量 # python解釋器安裝到目錄,配置環境變量 driver = webdriver.Chrome() try:driver.get('https://www.jd.com/')wait = WebDriverWait(driver, 10)input_tag = wait.until(EC.presence_of_element_located((By.ID, 'key')))time.sleep(5)input_tag.send_keys('公仔')input_tag.send_keys(Keys.ENTER)time.sleep(15) finally:driver.close()?
轉載于:https://www.cnblogs.com/963989822cmd/p/11124219.html
總結
以上是生活随笔為你收集整理的day02:requests爬取豆瓣电影信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL中Truncate的用法
- 下一篇: SAS 中计算总和或者计算总数的方法