首页 > 解决方案 > 如何使用 python 请求获取本网站的 html?

问题描述

我正在尝试从以下网站下载 html 文件:

https://www.avto.net/Ads/results.asp?znamka=Audi&model=&modelID=&tip=katerikoli%20tip&znamka2=&model2=&tip2=katerikoli%20tip&znamka3=&model3=&tip3=katerikoli%20tip&cenaMin=0&cenaMax=999999&letnikMin=0&letnikMax= 2090&bencin=0&starost2=999&oblika=0&ccmMin=0&ccmMax=99999&mocMin=&mocMax=&kmMin=0&kmMax=9999999&kwMin=0&kwMax=999&motortakt=&motorvalji=&lokacija=0&sirina=&dolzina=&dolzinaMIN=&dolzinaMAX=&nosilnostMIN=&nosilnostMAX=&lezisc=&presek=&premer=&col=&vijakov= &EToznaka=&vozilo=&airbag=&barva=&barvaint=&EQ1=1000000000&EQ2=1000000000&EQ3=1000000000&EQ4=100000000&EQ5=1000000000&EQ6=1000000000&EQ7=1000000120&EQ8=1010000001&EQ9=1000000000&KAT=1010000000&PIA=&PIAzero=&PSLO=&akcija=&paketgarancije=&broker=&prikazkategorije=&kategorija=&ONLvid=&ONLnak=&zaloga=&arhiv=&presort=&tipsort=&stran=1

如果我在 Google Chrome 中查看源代码,我可以毫无问题地获取 HTML。但是,我想用 Python 请求下载多个页面。但是,如果我尝试以这种方式获取 html,则会遇到错误。

使用:

response = requests.get(url) 
content = response.text 
with open('filename', 'w') as dat:
    dat.write(content)

我收到以下错误:

requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

我也尝试使用“allow_redirects=False”,但是,如果我这样做,我会得到一个错误的 html,它只包含以下文本:

Object Moved
This document may be found here.

我想知道如何才能使用 python 中的请求下载此 html。

如果我添加标题:

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'

代码确实运行,但再一次,没有给出我正在寻找的 html。它创建的 html 就像这样

<html><head><title>avto.net</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script>var ...

标签: pythonhtmlweb-scrapingpython-requests

解决方案


推荐阅读