国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

極客教程 scrapy和selenium

這篇具有很好參考價(jià)值的文章主要介紹了極客教程 scrapy和selenium。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

selenium

極客教程

使用python 調(diào)用scrapy的 爬蟲Spider并且相互之間可以正常傳參實(shí)現(xiàn)全局

常規(guī)情況創(chuàng)建,使用命令

scrapy genspider baidu "baidu.com"

Python中Scrapy框架詳解

瀏覽器調(diào)試模式下(F12 或 右鍵檢查)Command + shift + p

Disable javascript 禁用js

Enable javascript 恢復(fù)js

三、如何獲取js渲染的節(jié)點(diǎn)?

1.使用Selenium模擬瀏覽器操作

Selenium是一個(gè)自動(dòng)化測(cè)試工具,可以模擬人類操作瀏覽器。我們可以使用Selenium來(lái)打開網(wǎng)頁(yè)并執(zhí)行js代碼,然后再通過(guò)BeautifulSoup或正則表達(dá)式提取數(shù)據(jù)。但是這種方法比較慢,并且需要下載瀏覽器驅(qū)動(dòng)。
備注:dryscrape selenium

2.使用PhantomJS(Selenium放棄了PhantomJS方法)

PhantomJS是一個(gè)無(wú)界面的Webkit瀏覽器,可以用來(lái)執(zhí)行js代碼并獲取渲染后的HTML代碼。相比于Selenium,它更加輕便快速,并且不需要下載額外的瀏覽器驅(qū)動(dòng)。

3.使用Pyppeteer

Pyppeteer是一個(gè)Python版的Headless Chrome工具,也可以用來(lái)執(zhí)行js代碼并獲取渲染后的HTML代碼。與PhantomJS相比,它更加穩(wěn)定和可靠,但是需要安裝Chromium瀏覽器。

實(shí)現(xiàn)方案:
http://phantomjs.org/
https://blog.51cto.com/u_16099306/6600178

Pyppeteer入門及中文教程

Scrpay-動(dòng)態(tài)頁(yè)面爬取

Scrapy 和 Pyppeteer 更優(yōu)雅的對(duì)接方案
Pyppeteer 動(dòng)態(tài)加載沒(méi)有成功

回來(lái)修復(fù)bug

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://hotel.qunar.com/")
data = driver.title
print (data)

Traceback (most recent call last):
  File "D:\workplace\ScrapyDemo\main.py", line 53, in <module>
    driver = webdriver.PhantomJS()
AttributeError: module 'selenium.webdriver' has no attribute 'PhantomJS'

Process finished with exit code 1

原因:
新版的 selenium已經(jīng)放棄PhantomJS,所以才會(huì)出現(xiàn)module ‘selenium.webdriver’ has no attribute ‘PhantomJS’。PhantomJS安裝都是最新版本,pip install selenium安裝的也是最新版本。

(venv) > pip uninstall selenium       
Found existing installation: selenium 4.11.2
Uninstalling selenium-4.11.2:
  Would remove:
    d:\workplace\scrapydemo\venv\lib\site-packages\selenium-4.11.2.dist-info\*
    d:\workplace\scrapydemo\venv\lib\site-packages\selenium\*
Proceed (Y/n)? y
  Successfully uninstalled selenium-4.11.2
(venv) > pip install selenium==3.8.0  
Collecting selenium==3.8.0
  Downloading selenium-3.8.0.tar.gz (805 kB)

PhantomJS介紹
PhantomJS是一個(gè)基于webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來(lái)編譯解釋執(zhí)行JavaScript代碼。任何你可以在基于webkit瀏覽器做的事情,它都能做到。它不僅是個(gè)隱形的瀏覽器,提供了諸如CSS選擇器、支持Web標(biāo)準(zhǔn)、DOM操作、JSON、HTML5、Canvas、SVG等,同時(shí)也提供了處理文件I/O的操作,從而使你可以向操作系統(tǒng)讀寫文件等。PhantomJS的用處可謂非常廣泛,諸如前端無(wú)界面自動(dòng)化測(cè)試(需要結(jié)合Jasmin)、網(wǎng)絡(luò)監(jiān)測(cè)、網(wǎng)頁(yè)截屏等。

PhantomJS官方地址:http://phantomjs.org/。

PhantomJS官方API:http://phantomjs.org/api/。

PhantomJS官方示例:http://phantomjs.org/examples/。

PhantomJS GitHub:https://github.com/ariya/phantomjs/。

Windows系統(tǒng)下Chromedriver.exe安裝及配置
在利用selenium工具進(jìn)行Web自動(dòng)化測(cè)試時(shí),必須先要安裝瀏覽器驅(qū)動(dòng),通常比較常用的是谷歌瀏覽器和火狐瀏覽器。

一、瀏覽器驅(qū)動(dòng)下載地址
1.瀏覽器驅(qū)動(dòng)官網(wǎng):http://chromedriver.storage.googleapis.com/index.html
https://googlechromelabs.github.io/chrome-for-testing/
2.淘寶鏡像網(wǎng)站(推薦):http://npm.taobao.org/mirrors/chromedriver/

二、配置過(guò)程
首先需要在打開網(wǎng)站之前查看谷歌瀏覽器的版本,驅(qū)動(dòng)必須與瀏覽器版本一致,否則不起作用。

極客教程 scrapy和selenium,python,scrapy

其次,打開驅(qū)動(dòng)網(wǎng)站,找到與版本號(hào)一致的驅(qū)動(dòng)下載

極客教程 scrapy和selenium,python,scrapy

selenium中的三種等待方式(顯示等待WebDriverWait()、隱式等待implicitly()、強(qiáng)制等待sleep())—基于python

使用python自帶模塊time的sleep方式
缺點(diǎn):即使網(wǎng)絡(luò)條件較好時(shí),依舊按照預(yù)定固定時(shí)間等待,一般不建議使用,腳本調(diào)試可使用。

示例腳本:

from selenium import  webdriver
from time import sleep
class TestWait(object):
 driver = webdriver.Chrome()
 driver.get(http://www.baidu.com) 
 def test_sleep(self):
  self.driver.find_element_by_id("kw").send_keys("sleep test")
  # sleep(2) #等待固定時(shí)間
  self.driver.implicitly_wait(2)  # 隱式等待
  self.driver.find_element_by_id("su").click()
  self.driver.quit()
if __name__ == '__main__':
 wait=TestWait()
 wait.test_sleep()

2 隱式等待(implicitly_wait)
隱式等待設(shè)置的時(shí)間是最長(zhǎng)的時(shí)間,如果在規(guī)定時(shí)間內(nèi)網(wǎng)頁(yè)加載完成,則執(zhí)行下一步,否則一直等到時(shí)間結(jié)束,然后執(zhí)行下一步。

注意:隱式等待對(duì)driver整個(gè)周期都起作用,一般在最開始設(shè)置一次就可以了。不要當(dāng)做固定等待,哪里都設(shè)置隱式等待。

driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.implicitly_wait(seconds)
示例腳本:

from selenium import  webdriver
from time import sleep 
class TestWait(object):
 driver = webdriver.Chrome()
 driver.get(http://www.baidu.com) 
 def test_sleep(self):
  self.driver.find_element_by_id("kw").send_keys("sleep test")
  self.driver.implicitly_wait(2)  # 隱式等待
  self.driver.find_element_by_id("su").click()
  self.driver.quit()
if __name__ == '__main__':
 wait=TestWait()
 wait.test_sleep()

3 顯示等待(WebDriverWait)
顯式等待允許等待條件的發(fā)生,所以非常適合在瀏覽器及其DOM和WebDriver腳本之間同步狀態(tài)。
示例腳本:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
class TestWait(object):
 def setup(self):
  self.driver = webdriver.Chrome()
  self.driver.get(http://www.baidu.com) 
 def test_webdreiverwait(self):
  webdreiverwaits =WebDriverWait(self.driver,2)
  webdreiverwaits.until(ec.title_is("百度一下,你就知道"))
  self.driver.find_element_by_id("kw").send_keys("test_webdreiverwait test")
  self.driver.find_element_by_id("su").click() 
 def teardown(self):
  self.driver.quit() 
if __name__ == '__main__':
 wait=TestWait()
 wait.test_webdreiverwait()

Python3+Selenium 配置Chrome選項(xiàng)
攜帶cookie
https://www.cnblogs.com/clement-jiao/p/10889234.html

讀取大型文件
極客教程 scrapy和selenium,python,scrapy文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-644084.html

到了這里,關(guān)于極客教程 scrapy和selenium的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python爬蟲 scrapy+selenium+webdriver實(shí)現(xiàn)鼠標(biāo)滑動(dòng)破解阿里云盾快驗(yàn)證

    在爬取jianshu文章的時(shí)候發(fā)現(xiàn),jianshu竟然買了阿里云的盾塊驗(yàn)證!??!很是頭疼,雖然說(shuō)沒(méi)有其他圖片匹配的那么麻煩,但是阿里云的人機(jī)驗(yàn)證和算法真的是頂尖的,查閱了多個(gè)資料最后沒(méi)辦法,才實(shí)現(xiàn)用webdriver模擬鼠標(biāo)去通過(guò)驗(yàn)證 首先我們需要安裝webdriver驅(qū)動(dòng)和Google Chrom

    2024年02月03日
    瀏覽(104)
  • python爬蟲進(jìn)階篇:Scrapy中使用Selenium模擬Firefox火狐瀏覽器爬取網(wǎng)頁(yè)信息

    接著上一篇的筆記,Scrapy爬取普通無(wú)反爬、靜態(tài)頁(yè)面的網(wǎng)頁(yè)時(shí)可以順利爬取我們要的信息。但是大部分情況下我們要的數(shù)據(jù)所在的網(wǎng)頁(yè)它是動(dòng)態(tài)加載出來(lái)的(ajax請(qǐng)求后傳回前端頁(yè)面渲染、js調(diào)用function等)。這種情況下需要使用selenium進(jìn)行模擬人工操作瀏覽器行為,實(shí)現(xiàn)自動(dòng)化

    2024年02月04日
    瀏覽(102)
  • python爬蟲進(jìn)階篇:Scrapy中使用Selenium+Firefox瀏覽器爬取滬深A(yù)股股票行情

    上篇記錄了Scrapy搭配selenium的使用方法,有了基本的了解后我們可以將這項(xiàng)技術(shù)落實(shí)到實(shí)際需求中。目前很多股票網(wǎng)站的行情信息都是動(dòng)態(tài)數(shù)據(jù),我們可以用Scrapy+selenium對(duì)股票進(jìn)行實(shí)時(shí)采集并持久化,再進(jìn)行數(shù)據(jù)分析、郵件通知等操作。 詳情請(qǐng)看上篇筆記 items middlewares setti

    2024年02月04日
    瀏覽(29)
  • scrapy集成selenium

    ???????? ? ? ?使用scrapy默認(rèn)下載器---》類似于requests模塊發(fā)送請(qǐng)求,不能執(zhí)行js,有的頁(yè)面拿回來(lái)數(shù)據(jù)不完整 ? ? ?想在scrapy中集成selenium,獲取數(shù)據(jù)更完整,獲取完后,自己組裝成 Response對(duì)象,就會(huì)進(jìn)爬蟲解析,現(xiàn)在解析的是使用selenium拿回來(lái)的頁(yè)面,數(shù)據(jù)更完整 ? 集成

    2024年02月17日
    瀏覽(13)
  • Scrapy和Selenium整合(一文搞定)

    Scrapy和Selenium整合(一文搞定)

    scrapy和selenium的整合使用 先定個(gè)小目標(biāo)實(shí)現(xiàn)萬(wàn)物皆可爬!我們是用scrapy框架來(lái)快速爬取頁(yè)面上的數(shù)據(jù),它是自帶并發(fā)的,速度是可以的。但是一些ajax異步的請(qǐng)求我們不能這么爬取。我們要視同selenium來(lái)進(jìn)行l(wèi)azy loading,也就是懶加載,渲染到頁(yè)面加載數(shù)據(jù)。 首先你要安裝以下包

    2024年02月04日
    瀏覽(14)
  • 爬蟲框架有Scrapy、BeautifulSoup、Selenium

    爬蟲框架有Scrapy、BeautifulSoup、Selenium

    爬蟲框架有Scrapy、BeautifulSoup、Selenium BeautifulSoup比Scrapy相對(duì)容易學(xué)習(xí)。 Scrapy的擴(kuò)展,支持和社區(qū)比BeautifulSoup更大。 Scrapy應(yīng)被視為蜘蛛,而BeautifulSoup則是Parser。 1.爬蟲基礎(chǔ)知識(shí) 在開始Python爬蟲之前,需要先掌握一些基礎(chǔ)知識(shí)。首先了解一下HTTP協(xié)議,掌握常見的請(qǐng)求方法和狀

    2024年02月07日
    瀏覽(15)
  • 用Scrapy和Selenium爬取動(dòng)態(tài)數(shù)據(jù)

    文章參考千鋒教育大佬的課程: https://www.bilibili.com/video/BV1QY411F7Vt?p=1vd_source=5f425e0074a7f92921f53ab87712357b ,多謝大佬的課程 ??因?yàn)門B網(wǎng)的搜索功能需要登錄之后才能使用,所以我們要通過(guò)程序去控制瀏覽器實(shí)現(xiàn)登錄功能,然后再獲取登錄之后的Cookie. ??首先創(chuàng)建一個(gè)Chrome瀏覽

    2024年02月02日
    瀏覽(28)
  • 使用Scrapy框架集成Selenium實(shí)現(xiàn)高效爬蟲

    在網(wǎng)絡(luò)爬蟲的開發(fā)中,有時(shí)候我們需要處理一些JavaScript動(dòng)態(tài)生成的內(nèi)容或進(jìn)行一些復(fù)雜的操作,這時(shí)候傳統(tǒng)的基于請(qǐng)求和響應(yīng)的爬蟲框架就顯得力不從心了。為了解決這個(gè)問(wèn)題,我們可以使用Scrapy框架集成Selenium來(lái)實(shí)現(xiàn)高效的爬蟲。 Scrapy是一個(gè)使用Python編寫的開源網(wǎng)絡(luò)爬蟲框

    2024年02月09日
    瀏覽(22)
  • Scrapy爬蟲框架集成Selenium來(lái)解析動(dòng)態(tài)網(wǎng)頁(yè)

    Scrapy爬蟲框架集成Selenium來(lái)解析動(dòng)態(tài)網(wǎng)頁(yè)

    當(dāng)前網(wǎng)站普遍采用了javascript 動(dòng)態(tài)頁(yè)面,特別是vue與react的普及,使用scrapy框架定位動(dòng)態(tài)網(wǎng)頁(yè)元素十分困難,而selenium是最流行的瀏覽器自動(dòng)化工具,可以模擬瀏覽器來(lái)操作網(wǎng)頁(yè),解析元素,執(zhí)行動(dòng)作,可以處理動(dòng)態(tài)網(wǎng)頁(yè),使用selenium處理1個(gè)大型網(wǎng)站,速度很慢,而且非常耗資

    2024年02月15日
    瀏覽(26)
  • 在scrapy 使用selenium模擬登錄獲取cookie

    在scrapy 使用selenium模擬登錄獲取cookie

    前言 最近有一點(diǎn)點(diǎn)爬蟲需求,想總結(jié)一下scrapy框架的一些基本使用方法,加深印象,自己一直習(xí)慣使用一些腳本文件運(yùn)行爬蟲,面對(duì)數(shù)據(jù)量非常大,穩(wěn)定性要求比較高的,效率需求比較高的情況下還是用scrapy較為合適,scrapy是一個(gè)異步的框架,所有的請(qǐng)求都是阻塞的,雖然在

    2024年02月11日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包