貝殼找房標(biāo)題爬取需要注意的是,在頁面中間有一個小廣告
而他就在ul的li下面,當(dāng)我們進(jìn)行title所以輸出時,會報錯。
所以在進(jìn)行頁面解析之前必須把廣告叉掉,不然也把廣告那一部分的li給爬取下來了
所以,我們,定位到上面箭頭那里,進(jìn)行?x掉,也就是利用click事件進(jìn)行處理
然后第二個就是當(dāng)進(jìn)行下一頁時,url會更換
所以當(dāng)我們要第23456……頁時,必須刷新新的url
(如果換頁時,url沒變的情況下,則只需元素定位到下一頁的按鈕進(jìn)行click事件處理即可)。
要注意的就是以上那么多,代碼如下
?
from selenium import webdriver
from lxml import etree
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver import ChromeOptions
cho=ChromeOptions()
cho.add_experimental_option('excludeSwitches',['enable-automation'])
#瀏覽器驅(qū)動
bro=webdriver.Chrome(options=cho)
sleep(1)
all_page=[]
for i in range(5):
bro.get(f'https://bj.ke.com/ershoufang/pg{i+1}/')
# 睡個兩秒,防止頁面沒有加載完成
sleep(2)
#把廣告去掉,因?yàn)閺V告是ul下的一個li。
bro.find_element(By.CLASS_NAME,'daoliu_close').click()
#點(diǎn)擊后進(jìn)行解析,并且放進(jìn)列表里面
all_page.append(bro.page_source)
print(f'已經(jīng)把第{i+1}頁HTML內(nèi)容放入列表中')
print('--------------------------------------------------------------------------------------------------------------')
s=1
#頁面列表循環(huán)遍歷進(jìn)行解析。
for page in all_page:
tree=etree.HTML(page)
#睡個兩秒,防止頁面沒有加載完成
sleep(2)
li_list=tree.xpath('/html/body/div[1]/div[4]/div[1]/div[4]/ul/li')
#再睡個兩秒,防止頁面沒有加載完成
sleep(2)
print(f"正在爬取第{s}頁內(nèi)容****************************************************")
sleep(1)
#打印測試有沒有空元素
print(len(li_list))
for dl in li_list:
title=dl.xpath('./a/@title')[0]#@title只有一個所以【0】就行
print(title)
print(f'第{s}爬取完成*********************************************************')
s=s+1
sleep(1)
sleep(2)
bro.quit()
文章來源:http://www.zghlxwxcb.cn/news/detail-807712.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-807712.html
到了這里,關(guān)于selenium+xpath爬取二手房標(biāo)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!