我正在从URL列表中抓取内容,并使用bs4
和requests
模块在python中打印文本。问题是,抓取总是卡在一个随机的url上而不进行剪切。
此外,当我用ctrl c
手动剪切时,它没有正确地剪切,因为我似乎无法运行任何其他代码,就好像后台发生了什么一样。
在我抓取之前,我检查响应代码是200,代码看起来是这样的(这是这次似乎被卡住的url(:
url = 'https://www.businessinsider.in/business/ecommerce/news/amazon-is-eyeing-india-startups-as-it-gears-up-for-a-fight-with-asia-richest-man-in-retail/articleshow/81773692.cms?utm_campaign=cityfalcon&utm_medium=cityfalcon&utm_source=cityfalcon'
response = requests.get(url)
if str(response) == '<Response [200]>':
report = BeautifulSoup(response.content, 'lxml').text
print(report)
请求模块是否有一定的时间可以在一小时内使用?难道没有人知道我如何开始调试这样一个问题而不会出现任何错误吗?
任何需要进一步澄清或代码请告诉我。
编辑
使用其他URL时再次发生这种情况。url=的响应代码为<Response [403]>
https://www.investing.com/news/stephens-stick-to-their-buy-rating-for-tyson-foods-2470535?utm_campaign=cityfalcon&utm_medium=城市猎鹰&utm_source=城市猎鹰
它也被这个问题卡住了:
<Response [200]>
https://www.benzinga.com/analyst-ratings/analyst-color/21/04/20568999/analysts-upgraded-amc-snap-united-airlines-and-tesla-in-the-past-week'
它又一次不让我打断并继续工作。对于403错误,它无论如何都应该绕过条件,所以我真的不明白,因为没有错误,它只是继续运行?
我运行了大约100次,没有任何异常。
但需要注意的是,这不是像这个那样检查响应状态代码的蟒蛇方法
if str(response) == '<Response [200]>':
请改用此代码。
if response.status_code == 200:
# Do staff