例項一》爬取airbnb房屋資訊

2022-07-15 09:36:10 字數 3847 閱讀 3948

from selenium import

webdriver

#driver = webdriver.chrome(executable_path='

d:\\chromedriver.exe')

#自動訪問的**

driver.get("

")#找到頁面中所有的出租房

rent_list = driver.find_elements_by_css_selector('

div._gig1e7')

#for eachhouse in

rent_list:

#try

: comment = eachhouse.find_element_by_css_selector('

span._1clmxfj')

comment =comment.text

except

: comment =0

#找到**

price = eachhouse.find_element_by_css_selector('

div._1ixtnfc')

price = price.text #

.replace("每晚","").replace("**","").replace("\n","")

#找到名稱

name = eachhouse.find_element_by_css_selector('

div._qrfr9x5')

name =name.text

#找到房屋種類

details = eachhouse.find_element_by_css_selector('

div._1dir9an')

details =details.text

print

(comment,price,name,details)

重點是通過【檢查】來檢視元素的定位名稱,根據型別選擇對應函式。

有時候會報錯:

selenium.common.exceptions.staleelementreferenceexception: message: stale element reference: element is

notattached to the page document

(session info: chrome=86.0.4240.183)

這個問題是有時會出現,有時不會出現。

異常:selenium.common.exceptions.staleelementreferenceexception(msg=none, screen=none, stacktrace=none)

依據:selenium.common.exceptions.webdriverexception

乙個參考的元素現在是「過時」時丟擲異常。 

「過時」是指這個元素不再出現在頁面的dom中。

selenium的常見異常**: 

try

: details = eachhouse.find_element_by_css_selector('

div._1dir9an')

details =details.text

except

ex.staleelementreferenceexception:

print("

error

")

使用try....   expect..去丟擲異常,程式可以正確執行,但還是有大量的資料沒有爬到值

'''

?refinement_paths%5b%5d=%2fhomes&

current_tab_id=home_tab&selected_tab_id=home_tab&screen_size=large

&hide_dates_and_guests_filters=false&place_id=chijkvlh0aj0azqryycstw1v7v0

&s_tag=22t2aon4

&last_search_session_id=0cb302bf-293c-4c1c-a7e2-7df7dd6c9ad6

&items_offset=20/40

§ion_offset=6

?items_offset=40

相應頁數×20

'''from selenium import

webdriver

from selenium.common import

exceptions as ex

#driver = webdriver.chrome(executable_path='

d:\\chromedriver.exe')

for i in range(0,3):

link = '

?items_offset=

'+str(i*20)

link =driver.get(link)

#print(link)

rent_list = driver.find_elements_by_css_selector('

div._gig1e7')

for eachhouse in

rent_list:

#try

: comment = eachhouse.find_element_by_css_selector('

span._1clmxfj')

comment =comment.text

except

: comment =0

#找到**

#price2 = eachhouse.find_element_by_css_selector('div._1ixtnfc')

#price = price2.text

try:

price2 = eachhouse.find_element_by_css_selector('

div._1ixtnfc')

price =price2.text

except

ex.staleelementreferenceexception:

print("

error")

#找到名稱

#name = eachhouse.find_element_by_css_selector('div._qrfr9x5')

#name = name.text

try:

name = eachhouse.find_element_by_css_selector('

div._qrfr9x5')

name =name.text

except

ex.staleelementreferenceexception:

print("

error")

#找到房屋種類

#details = eachhouse.find_element_by_css_selector('div._1dir9an')

#details = details.text

try:

details = eachhouse.find_element_by_css_selector('

div._1dir9an')

details =details.text

except

ex.staleelementreferenceexception:

print("

error")

print(comment, price, name, details)

爬取豆瓣熱映電影資訊(爬蟲例項)

在學習完requests網路請求方法和xpath資料解析方法之後,今天通過乙個例項來對前面所學的知識進行鞏固,也算是一種學以致用吧!0 匯入所需要的包 import requests from lxml import etree 1 資訊的獲取 headers url response reques...

爬取小說釣趣例項 一

看大家對網路爬蟲興趣不高,那就讓我做乙個有鉤的姜太公,來釣一釣大魚。接下來講一講如何爬取一部 因為爬取網頁要掌握很多預備知識,可能你掌握的知識不夠,沒關係,釣趣嗎?就當先看看怎麼寫爬蟲。本人還是比較喜歡推理 的,所以在乙個 上找到了東野圭吾的作品集,然後我們的目的就是爬取他的一部比較著名的 白夜行 ...

python爬取網頁資料例項 一

coding utf 8 from lxml import etree import urllib2 import random import urlparse 設定網路 proxy info proxy support urllib2.proxyhandler openner urllib2.bu...