這個里是我要抓取的資料,是動態內容,url回傳的text里邊沒有這些資料

然后我查閱xhr,發現中間有個ManuArtNr頁面有回傳json資料。

以下ManuArtNr這個頁面的基本,請求頭,引數之類的


我根據這些頁面資訊寫了抓取代碼,但是沒有回傳json資料,而是一張報錯頁面,內容和我拿引數直接構建url在瀏覽器訪問一樣,如下

以下是我的抓取代碼
refererurl = 'https://web1.carparts-cat.com/Sub/GVS/' + MyId + '/4/1/1/0/-1/-1/-1/9992/?SupplierNumber=1368&SupplierArticleNumber=54927&GenArtNr=3324&VknId=0&HKatNr=0&CatalogType=0'
appliurl = 'https://web1.carparts-cat.com/SUB/GVS/ManuArtNr/'
applidata = {
'sessionID': MyId,
'artNr': PartID,
'typeArt': 1,
'genArtNr': SupID
}
print(applidata)
appliHeader = {
'accept': 'application/json, text/javascript, */*; q=0.01',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-type': 'application / x - www - form - urlencoded',
'origin': 'https://web1.carparts-cat.com',
'cookie': '__cfduid=' + resp.cookies['__cfduid'] + '; HideBranding=16=0; __tawkuuid=e::web1.carparts-cat.com::QoRXwsNWAMIqMY0456ZtfYYIWbLKUGCDtOuXxgKzepl4/qf7B8A6rdIkdC8f7PUS::2; slidePaneOpened=1; TawkConnectionTime=0',
'referer': refererurl,
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
}
resp5 = session.post(appliurl, data=https://bbs.csdn.net/topics/applidata, headers=appliHeader)
header 和data中間有幾個變數,是我從之前的的登錄搜索頁面中取來,程式跑的程序中,我輸出查看,內容都是正確的。
uj5u.com熱心網友回復:
不要沉了,這個問題折騰我幾天了,到處查資料,真的沒有答案,求大佬幫助。愿意支付一定的報酬。uj5u.com熱心網友回復:
可以先試試用selenium 抓取 ,有視窗,然后無視窗uj5u.com熱心網友回復:
首頁url給一下uj5u.com熱心網友回復:
沒做完 可以看看用selenium的效果。iframe提取還沒做好
import requests, time, threading
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
CHROME_PATH = "C:/Python/chromedriverV81.exe"
if __name__ == '__main__':
uname = " "
password = " "
browser = webdriver.Chrome(CHROME_PATH)
browser.get("https://web1.carparts-cat.com/loginh.aspx?SID=016001")
time.sleep(1)
browser.find_element_by_id('username').send_keys(uname)
browser.find_element_by_id('password').send_keys(password)
browser.find_element_by_id('login').click()
time.sleep(1)
browser.find_element_by_id('ok').click()
time.sleep(1)
# id="home_txt_fzg_freitext"
browser.find_element_by_id('home_txt_fzg_freitext').send_keys("036103464ah")
browser.find_element_by_id('home_fzg_freitext_imgBtn').click()
action = ActionChains(browser)
# browser.find_element_by_class_name('menuBasketQuantity').send_keys(Keys.CONTROL +"t")
browser.find_element_by_class_name('menuBasketQuantity').click()
CarManufacturers=browser.find_elements_by_class_name("FilterByCarManufacturers")
print("before iframe", browser.page_source)
iframe0 =browser.switch_to.frame(browser.find_element_by_tag_name("iframe"))
print("iframe0 ",iframe0)
print(browser.page_source)
while (True):
time.sleep(20)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51309.html
上一篇:python程式設計
