from selenium importwebdriver
#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
(comment,price,name,details)
重點是通過【檢查】來檢視元素的定位名稱,根據型別選擇對應函式。
有時候會報錯:
selenium.common.exceptions.staleelementreferenceexception: message: stale element reference: element isnotattached 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...