這幾天想用selenium爬網頁資訊,簡單寫了乙個但是總報錯,找不到問題原因,各位幫我看看唄,大家可以直接執行***的**,看看報錯資訊。from selenium import webdriver
from selenium.webdriver.firefox.options import options
import csv
import time
#selenium優化選項部分
fox_options = options()
fox_options.add_argument('--headless')
fox_options.add_argument('--disable-gpu')
fox_options.add_argument('blink-settings=imagesenabled=false')
fox_options.add_argument('log-level=3')
# 如果firefox沒有安裝在預設位置,就要手動指定位置
location = 'c:/firefox/firefox.exe'
driver = webdriver.firefox(options=fox_options,firefox_binary=location)
# 新增newline可以避免一行之後的空格,這樣需要在python3環境下執行
csvfile = open(r'g:\che168\r0610.csv', 'w', newline='', encoding='gb18030')
# 指定逗號作為分隔符,並且指定quote方式為引用。這意味著讀的時候都認為內容是被預設引用符(")包圍的
writer = csv.writer(csvfile, delimiter=',', quoting=csv.quote_all)
keys = ['商家編號','車輛編號','車型','車齡','表顯里程','售價','新車**','上牌時間','折舊率','平均每年貶值','變速箱','排放標準', '排量','過戶次數','發布日期','過戶次數','所在地','發布日期','發動機','顏色','燃油標號', '驅動方式', '公司名稱', '公司位址']
writer.writerow(keys)
#確定車型的總頁數
driver.get("")
c_page =driver.find_element_by_xpath('/html/body/div[12]/div[2]/a[8]').text
print(c_page)
for page in range(1, int(c_page)):
#url = "" + str(
page) + "exx0/?pvareaid=102179#currengpostion"
print(url)
driver.get(url)
time.sleep(3)
for car_link in driver.find_elements_by_xpath('//*[@class="viewlist_ul"]//a'):
print(car_link.get_attribute('href'))
time.sleep(3)
try:
driver.get(car_link.get_attribute('href'))
time.sleep(3)
#商家id
sj_id=driver.find_element_by_id('car_dealerid').get_attribute('value')
#車輛id
car_id=driver.find_element_by_id('car_infoid').get_attribute('value')
#車型資訊
cartitle=driver.find_element_by_id('car_carname').get_attribute('value')
#車輛年限
car_age=driver.find_element_by_id('car_age').get_attribute('value')
#行駛里程
carlong=driver.find_element_by_id('car_mileage').get_attribute('value')
#售價carprice=driver.find_element_by_id('car_price').get_attribute('value')
#新車**
carnewprice= driver.find_element_by_id("newprice").text.replace("新車含稅價:",'').replace('萬','')
#上牌時間
cardate=driver.find_element_by_id('car_firstregtime').get_attribute('value')
#折舊率
carzj=round((float(carnewprice)-float(carprice))/float(carnewprice),2)
#平均每年貶值
carbz=round((float(carnewprice)-float(carprice))/int(car_age),2)
#變速箱
carbsx=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[1]/li[3]').text.replace('變 速 箱','')
#排放標準
carpf=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[1]/li[4]').text.replace('排放標準','')
#排量carpl=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[1]/li[5]').text.replace('排 量','')
#過戶次數
cargh=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[2]/li[5]').text.replace('過戶次數','')
#所在地
carcity=driver.find_element_by_id('citygroupid').text.replace('所 在 地','')
#發布日期
carlogindate=driver.find_element_by_id('car_publicdatestr').get_attribute('value')
#發動機
carfdj=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[3]/li[1]').text.replace('發 動 機','')
#顏色carcolor=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[3]/li[3]').text.replace('發 動 機','')
#燃油carry=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[3]/li[4]').text.replace('燃油標號','')
#驅動方式
carqd=driver.find_element_by_xpath('/html/body/div[7]/div[1]/ul[3]/li[5]').text.replace('驅動方式','')
#公司名稱
carxss=driver.find_element_by_class_name("company-name").text
#公司位址
carxss_address=driver.find_element_by_class_name("company-adress").text
print(carzj)
print(carbz)
print(carcity)
except exception as e:
print("部分資料未提取到")
pass
try:
onecar = [sj_id,car_id,cartitle,car_age,carlong,carprice,carnewprice,cardate,carzj,carbz,carbsx,carpf,carpl,cargh,carcity,carlogindate,carfdj,carcolor,carry,carqd,carxss,carxss_address]
writer.writerow(onecar)
except oserror:
pass
#driver.close()
csvfile.close()
以上是我寫的全部**了
提示selenium.common.exceptions.staleelementreferenceexception: message: the element reference of is stale; either the element is no longer attached to the dom, it is not in the current frame context, or the document has been refreshed
Python愛的魔力轉圈圈
根據給定數值,列印出一組由外向裡由小到大排列的數字影象 例如 for迴圈建立乙個空的二維size size大小的陣列 for i in range size 1 array 0 size print array 控制迴圈列印在二維陣列中的位置的前進方向 定義陣列內的對應位置的數值大小 j,k 0,0...
單純的愛,愛簡單
你喜歡的人,不一定喜歡你。曾經擁有的,也許會放棄,也許會珍惜,珍惜太久的。可能會讓人嫌棄。時間久了,就會忘記,忘記曾經的哀傷,忘記曾經的甜蜜。當自己愛的人,喜歡別的人,當自己愛的人,對自己絕望。選擇忘記,選擇放棄,選擇珍惜,選擇堅持,選擇堅強?當告訴你還是朋友,當告訴你會有機會,當告訴你會離你而去,...
1060 愛丁頓數 python
1060 愛丁頓數 25 分 英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入第一行給出乙個正整數 n 10 5...