请求发布和重试机制问题

我的网络抓取程序中包含以下代码:

postbody = {'Submit': {},'czas_kon2': '','czas_pocz2': '','num_pacz': '','typ': 'wsz'}
post = requests.post(spolka,data=postbody)
data = post.text

我正在循环执行400多个网页,以使用多处理(8个进程)抓取数据。 data应该包含整个html页面,以进行进一步的xml处理。 但是在400页中,我得到2页,但没有返回有意义的内容。我怀疑这是因为我造成了沉重的负担。我尝试过time.sleep(1),time.sleep(10),但这里没有运气。

如何确保datapost变量始终包含整个页面,例如398个工作页面?

我尝试了一个简单的while循环重试...但是在一次额外的尝试之后,它还远非完美(我能够从剩余的2页中获得1个)。

 while len(data) < 1024:
        postbody = {'Submit': {},'typ': 'wsz'}
        post = requests.post(spolka,data=postbody)
        data = post.text
wssd123 回答:请求发布和重试机制问题

我认为您应该添加一个请求标头。

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'}
postbody = {'Submit': {},'czas_kon2': '','czas_pocz2': '','num_pacz': '','typ': 'wsz'}
post = requests.post(spolka,data=postbody,headers=headers)

更多标题示例:

headers = {
'Accept': 'text/javascript,application/javascript,application/ecmascript,application/x-ecmascript,*/*; q=0.01','Accept-Encoding': 'gzip,deflate,br','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Host': 'www.google.com','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','X-Requested-With': 'XMLHttpRequest','Cookies': '','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'
}
本文链接:https://www.f2er.com/3131251.html

大家都在问