校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息

詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息

熱門(mén)標(biāo)簽:百應(yīng)ai電銷(xiāo)機(jī)器人鄭州 如何在地圖標(biāo)注文字 n400電話(huà)申請(qǐng)多少錢(qián) 女王谷地圖標(biāo)注 地圖標(biāo)注推廣單頁(yè) ai地圖標(biāo)注 西藏快速地圖標(biāo)注地點(diǎn) 長(zhǎng)春人工智能電銷(xiāo)機(jī)器人官網(wǎng) 廈門(mén)crm外呼系統(tǒng)如何

什么是Selenium

Selenium是一個(gè)用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時(shí)也支持phantomJS無(wú)界面瀏覽器。

1.準(zhǔn)備工作

由于Selenium的環(huán)境配置過(guò)程比較繁瑣,我會(huì)盡可能詳細(xì)的對(duì)其進(jìn)行講解。

1.1 安裝Selenium

由于Selenium的環(huán)境配置過(guò)程比較繁瑣,我會(huì)多花一些篇幅對(duì)其進(jìn)行講解。可以在cmd命令框輸入以下內(nèi)容安裝Selenium庫(kù)。

pip install Selenium

1.2 瀏覽器驅(qū)動(dòng)安裝

Selenium的使用必須有相應(yīng)瀏覽器的webdriver,以Chrome瀏覽器為例,可以在這個(gè)鏈接查看自己的瀏覽器對(duì)應(yīng)的Chromedriver的版本。

1.3 環(huán)境變量添加

設(shè)置瀏覽器的地址非常簡(jiǎn)單。 我們可以手動(dòng)創(chuàng)建一個(gè)存放瀏覽器驅(qū)動(dòng)的目錄, , 將下載的瀏覽器驅(qū)動(dòng)文件丟到該目錄下。然后在我的電腦–>屬性–>系統(tǒng)設(shè)置–>高級(jí)–>環(huán)境變量–>系統(tǒng)變量–>Path,將該目錄添加到Path的值中。如果配置變量有問(wèn)題,可以參照這個(gè)鏈接

注意,如果系統(tǒng)報(bào)錯(cuò)為:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created:This version of ChromeDriver only supports Chrome version***

表示當(dāng)前下載的Chromedriver的版本與自己瀏覽器的版本無(wú)法對(duì)應(yīng),可以通過(guò)Chrome的幫助查看自己的瀏覽器版本

1.4 小試牛刀

接下來(lái)就可以測(cè)試我們的selenium是不是可以正常使用了,以一個(gè)簡(jiǎn)單的例子開(kāi)始:驅(qū)動(dòng)瀏覽器打開(kāi)百度。

from selenium import webdriver

url='https://www.baidu.com/'
browser=webdriver.Chrome()
browser.get(url)

如果到這里都沒(méi)有問(wèn)題的話(huà),就已經(jīng)可以開(kāi)始進(jìn)行下一步了。

2.相關(guān)步驟

2.1 引入相關(guān)模塊

首先導(dǎo)入本次爬蟲(chóng)任務(wù)需要的相關(guān)庫(kù):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

其中selenium.webdriver.common.by 主要用于搜尋網(wǎng)頁(yè)元素的id信息,用于定位按鈕、輸入框之類(lèi)的元素,WebDriverWait主要是用于等待網(wǎng)頁(yè)響應(yīng)完成,因?yàn)榫W(wǎng)頁(yè)沒(méi)有完全加載,就使用find_elements_by_**等方法,就會(huì)出現(xiàn)找不到對(duì)應(yīng)元素的情況。

2.2 獲取信息

movies=browser.find_elements_by_class_name('movie-name-text')
  names=[]
  for item in movies:
    if item.text!='':
      names.append(item.text)

其中find_elements_by_class_name就是通過(guò)查找class_name來(lái)鎖定影片名稱(chēng)這個(gè)信息。

審查元素后右鍵即可Copy這個(gè)元素的JS path,selector等信息,可以鎖定這個(gè)元素及其類(lèi)似的其他元素的信息。以‘霸王別姬'這部影片為例,他的selector就是#content > div > div.article > div.movie-list-panel.pictext > div:nth-child(1) > div > div > div.movie-name > span.movie-name-text > a
那么就可以用下面的代碼來(lái)鎖定影片名稱(chēng)。

movies=browser.find_elements_by_class_name('#content > div > div.article > div.movie-list-panel.pictext > div:nth-child(1) > div > div > div.movie-name > span.movie-name-text > a')

2.3 設(shè)置等待時(shí)間

前面已經(jīng)說(shuō)過(guò),如果頁(yè)面還沒(méi)有完全加載出,我們就進(jìn)行元素的查找,返回的很可能是空列表,所以我們需要設(shè)置等待時(shí)間。
這里就涉及到顯示等待和隱式等待的區(qū)別。

2.3.1 顯式等待
每隔一段時(shí)間檢測(cè)一次當(dāng)前頁(yè)面元素是否存在,如果超過(guò)設(shè)置時(shí)間檢測(cè)不到則拋出異常(TimeoutException)代碼格式:WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

2.3.2 隱式等待
隱式等待是通過(guò)一定的時(shí)長(zhǎng)等待頁(yè)面上某個(gè)元素加載完成。如果超出了設(shè)置的時(shí)長(zhǎng)元素還沒(méi)有被加載,則拋出NoSuchElementException異常。
操作如下:implicitly_wait()
當(dāng)使用了隱式等待執(zhí)行測(cè)試的時(shí)候,如果 WebDriver沒(méi)有在 DOM中找到元素,將繼續(xù)等待,超出設(shè)定時(shí)間后則拋出找不到元素的異常換句話(huà)說(shuō),當(dāng)查找元素或元素并沒(méi)有立即出現(xiàn)的時(shí)候,隱式等待將等待一段時(shí)間再查找 DOM,默認(rèn)的時(shí)間是0,一旦設(shè)置了隱式等待,則它存在整個(gè) WebDriver 對(duì)象實(shí)例的聲明周期中,隱式的等到會(huì)讓一個(gè)正常響應(yīng)的應(yīng)用的測(cè)試變慢,它將會(huì)在尋找每個(gè)元素的時(shí)候都進(jìn)行等待,這樣會(huì)增加整個(gè)測(cè)試執(zhí)行的時(shí)間。我們這里使用的就是隱式等待。

def get_page():
  browser.implicitly_wait(10)
  for i in range(50):
    time.sleep(0.3)
    browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    print('正在下滑第{}次'.format(i))
    print('-------------')
  #time.sleep(10)
  print("*****請(qǐng)等待幾秒*****")
  time.sleep(10)
  when=wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#content > div > div.article > div.movie-list-panel.pictext > div:nth-child(380) > div > a > img')))

2.3.3 強(qiáng)制等待(補(bǔ)充)
強(qiáng)制等待就是使用python自帶的time模塊,設(shè)置等待時(shí)間,操作如下:time.sleep(time)一般可以用強(qiáng)制等待來(lái)限制計(jì)算機(jī)頻繁訪(fǎng)問(wèn)目標(biāo)鏈接導(dǎo)致驗(yàn)證問(wèn)題。

2.4 頁(yè)面自動(dòng)下滑

頁(yè)面下滑過(guò)程比較簡(jiǎn)單,不多贅述。其實(shí)現(xiàn)過(guò)程如下:

browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')#下滑操作

2.5 保存文件

爬取出的數(shù)據(jù)是列表形式,使用pandas的to_csv方法就可以保存到本地了。

rate,miscs,actor_list,ranks,playable_sign,names=get_page()
  datas=pd.DataFrame({'names':names,'rank':ranks,'分類(lèi)':miscs,'評(píng)分':rate})
  try:
    datas.to_csv('機(jī)器學(xué)習(xí)\爬蟲(chóng)\douban_0327.csv',encoding='utf_8_sig')
    print("保存成功")
    print(datas)

3.完整代碼

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import pandas as pd
import time

url='https://movie.douban.com/typerank?type_name=愛(ài)情片type=13interval_id=100:90action='
options=webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
options.add_argument('user-agent="Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"')
browser=webdriver.Chrome()
browser.get(url)
wait=WebDriverWait(browser,10)
def get_page():
  browser.implicitly_wait(10)
  for i in range(50):
    time.sleep(0.3)
    browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')#下滑操作
    print('正在下滑第{}次'.format(i))
    print('-------------')
  #time.sleep(10)
  print("*****請(qǐng)等待幾秒*****")
  time.sleep(10)
  when=wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#content > div > div.article > div.movie-list-panel.pictext > div:nth-child(380) > div > a > img')))
#-----------------------------------------------------------------
  movies=browser.find_elements_by_class_name('movie-name-text')
  names=[]
  for item in movies:
    if item.text!='':
      names.append(item.text)
  print("爬取成功")
  print(len(names))
#---------------------------------------------------------------
  playables=browser.find_elements_by_class_name('playable-sign')
  playable_sign=[]
  for sign in playables:
    if sign.text!='':
      playable_sign.append(sign.text)
  print('爬取成功')
  print(len(playable_sign))
#------------------------------------------------------------
  rank_names=browser.find_elements_by_class_name('rank-num')
  ranks=[]
  for rank in rank_names:
    if rank.text!='':
      ranks.append(rank.text)
  print('爬取成功')
  print(len(ranks))
#---------------------------------------------------------
  actors=browser.find_elements_by_class_name('movie-crew')
  actor_list=[]
  for actor in actors:
    if actor.text!='':
      actor_list.append(actor.text)
  print('爬取成功')
  print(len(actor_list))
#----------------------------------------------------------
  clasic=browser.find_elements_by_class_name('movie-misc')
  miscs=[]
  for misc in clasic:
    if misc.text!='':
      miscs.append(misc.text)
  print('爬取成功')
  print(len(miscs))
#-----------------------------------------------------------
  rates=browser.find_elements_by_class_name('movie-rating')
  rate=[]
  for score in rates:
    if score.text!='':
      rate.append(score.text)
  print('爬取成功')
  print(len(rate))
#-----------------------------------------------------------
  '''
  links=browser.find_elements_by_class_name('movie-content')
  for link in links:
    link_img=link.get_attribute('data-original')
    print(link_img)
  '''
  return rate,miscs,actor_list,ranks,playable_sign,names

if __name__ == "__main__":
  rate,miscs,actor_list,ranks,playable_sign,names=get_page()
  datas=pd.DataFrame({'names':names,'rank':ranks,'分類(lèi)':miscs,'評(píng)分':rate})
  try:
    datas.to_csv('機(jī)器學(xué)習(xí)\爬蟲(chóng)\douban_0327.csv',encoding='utf_8_sig')
    print("保存成功")
    print(datas)
  except:
    print('保存失敗')

到此這篇關(guān)于詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息的文章就介紹到這了,更多相關(guān)Selenium爬取豆瓣電影內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python Selenium爬取內(nèi)容并存儲(chǔ)至MySQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
  • Python使用Selenium+BeautifulSoup爬取淘寶搜索頁(yè)
  • Scrapy基于selenium結(jié)合爬取淘寶的實(shí)例講解
  • python爬蟲(chóng)系列Selenium定向爬取虎撲籃球圖片詳解
  • Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法
  • scrapy與selenium結(jié)合爬取數(shù)據(jù)(爬取動(dòng)態(tài)網(wǎng)站)的示例代碼
  • 詳解python selenium 爬取網(wǎng)易云音樂(lè)歌單名
  • Python selenium爬取微信公眾號(hào)文章代碼詳解
  • java+selenium爬取圖片簽名的方法
  • Python selenium爬取微博數(shù)據(jù)代碼實(shí)例

標(biāo)簽:內(nèi)江 廊坊 拉薩 亳州 綿陽(yáng) 渭南 黔東 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息》,本文關(guān)鍵詞  詳解,使用,Selenium,爬取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于詳解使用Selenium爬取豆瓣電影前100的愛(ài)情片相關(guān)信息的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久亚洲综合色一区二区三区| 夜夜操天天操亚洲| 看电视剧不卡顿的网站| 欧美mv日韩mv| 国产高清久久久久| 国产精品久久久久国产精品日日 | 久久精品亚洲麻豆av一区二区| 久国产精品韩国三级视频| 2023国产精华国产精品| 成人精品小蝌蚪| 麻豆国产欧美一区二区三区| 日韩欧美国产电影| 成人高清伦理免费影院在线观看| 亚洲欧洲国产专区| 在线播放中文字幕一区| 国产精品自拍一区| 亚洲人吸女人奶水| 制服.丝袜.亚洲.另类.中文| 国产激情一区二区三区| 亚洲精品自拍动漫在线| 91精品在线麻豆| 国产福利一区二区三区在线视频| 中文字幕中文字幕在线一区 | 国产黄色91视频| 樱花草国产18久久久久| 日韩一区二区在线观看| 国v精品久久久网| 亚洲国产婷婷综合在线精品| 日韩欧美一区二区在线视频| 成人午夜免费电影| 亚洲成av人片一区二区梦乃| 久久免费的精品国产v∧| 91论坛在线播放| 激情五月播播久久久精品| 亚洲男人的天堂一区二区| 精品国产亚洲一区二区三区在线观看| 99在线精品观看| 久久精品国产在热久久| 亚洲美女屁股眼交| 久久久久久久久久久电影| 欧美三区免费完整视频在线观看| 欧美丝袜丝交足nylons| 国产夫妻精品视频| 婷婷综合久久一区二区三区| 日本一区二区三区在线观看| 6080午夜不卡| 91免费版在线看| 成人午夜激情影院| 老司机精品视频在线| 亚洲成av人片观看| 亚洲欧美成aⅴ人在线观看| 久久久综合激的五月天| 日韩欧美亚洲一区二区| 欧美精品免费视频| 日本丶国产丶欧美色综合| 成人高清av在线| 国产精品亚洲午夜一区二区三区 | 午夜精品在线视频一区| 亚洲天堂成人在线观看| 国产欧美一区二区精品性色 | 久久99国产精品尤物| 亚洲成人av中文| 一区二区三区美女视频| 中文字幕在线不卡国产视频| 欧美激情在线观看视频免费| 久久免费精品国产久精品久久久久| 5858s免费视频成人| 欧美视频中文字幕| 91蜜桃网址入口| 91一区在线观看| 成人看片黄a免费看在线| 国产成人在线网站| 国产福利91精品一区| 国产在线观看一区二区| 国产精选一区二区三区| 精品亚洲国内自在自线福利| 日韩精品免费专区| 日本系列欧美系列| 日韩不卡手机在线v区| 日本视频免费一区| 免费成人在线视频观看| 青青国产91久久久久久| 裸体歌舞表演一区二区| 久久99精品一区二区三区| 久久精工是国产品牌吗| 老司机一区二区| 国产一区二区三区| 成人av在线资源| 91美女片黄在线| 欧美日韩精品欧美日韩精品 | 麻豆国产精品777777在线| 亚洲成a人v欧美综合天堂下载 | 亚洲aⅴ怡春院| 日韩精品高清不卡| 日本免费新一区视频| 久久精品免费观看| 国产精品主播直播| 94色蜜桃网一区二区三区| 在线观看成人免费视频| 欧美一区二区视频在线观看2020| 精品国产凹凸成av人网站| 中文字幕精品综合| 亚洲成人免费看| 国产在线国偷精品免费看| 99精品视频在线观看免费| 欧美美女网站色| 久久久美女毛片| 最新中文字幕一区二区三区| 亚洲综合激情小说| 精品在线视频一区| 一本久久综合亚洲鲁鲁五月天| 欧美嫩在线观看| 国产午夜久久久久| 亚洲精品国产a| 狠狠色丁香久久婷婷综合_中| av福利精品导航| 日韩网站在线看片你懂的| 国产精品不卡在线观看| 午夜成人免费视频| 成人午夜伦理影院| 91麻豆精品国产综合久久久久久| 中文av一区特黄| 日韩av高清在线观看| av一区二区三区在线| 91精品国产91综合久久蜜臀| 成人欧美一区二区三区视频网页| 免费高清不卡av| 91国偷自产一区二区使用方法| 欧美r级电影在线观看| 一区二区三区电影在线播| 国产久卡久卡久卡久卡视频精品| 在线观看av一区二区| 欧美国产一区视频在线观看| 日韩精品成人一区二区在线| 北条麻妃一区二区三区| 欧美成人乱码一区二区三区| 亚洲一区在线观看视频| 成人手机电影网| 欧美第一区第二区| 亚洲国产一二三| 91麻豆视频网站| 久久精品人人做人人爽97| 日本强好片久久久久久aaa| 色噜噜狠狠成人网p站| 国产欧美日韩麻豆91| 美女在线一区二区| 欧美日韩电影一区| 一区二区在线观看视频| 成人在线视频首页| 精品国产免费人成在线观看| 日本美女视频一区二区| 欧美日韩国产综合视频在线观看| 一区二区三区在线观看视频| 91网站最新地址| 欧美国产日韩亚洲一区| 国产麻豆精品视频| 精品国产一区二区三区不卡| 91色porny| 亚洲欧美综合另类在线卡通| 国产99久久久国产精品免费看| 久久久亚洲午夜电影| 国产精品一区二区在线观看网站| 欧美成人免费网站| 激情另类小说区图片区视频区| 日韩欧美色综合| 美女一区二区视频| 日韩精品一区在线| 韩国一区二区三区| 国产三级久久久| 成人av影视在线观看| 国产精品久久免费看| 91丨九色丨蝌蚪丨老版| 亚洲欧洲精品天堂一级| 色成人在线视频| 亚洲国产精品一区二区www| 欧美视频第二页| 免费高清视频精品| 精品入口麻豆88视频| 国产.欧美.日韩| 亚洲欧美日韩中文字幕一区二区三区| 91在线无精精品入口| 亚洲国产综合在线| 日韩一区和二区| 国产大陆亚洲精品国产| 中文字幕日韩一区| 91亚洲永久精品| 亚州成人在线电影| 欧美一级欧美一级在线播放| 国产一区二区三区四区五区入口| 国产精品欧美久久久久无广告 | 丁香天五香天堂综合| 亚洲欧美偷拍卡通变态| 欧美日韩中文精品| 麻豆91免费观看| 国产精品国产自产拍高清av| 在线免费亚洲电影| 久久精品国产色蜜蜜麻豆| 欧美激情资源网| 在线电影国产精品| 成人影视亚洲图片在线|