愛python 愛python的男人

2021-10-11 11:55:44 字數 4585 閱讀 3266

這幾天想用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...