【问题标题】:Python requests module gets stuck on requests.get() and gets timed outPython requests 模块卡在 requests.get() 上并超时
【发布时间】:2020-12-16 06:04:37
【问题描述】:

我一直在尝试从以下网站进行网页抓取:“https://www.india.ford.com/cars/aspire/”

import requests
from bs4 import BeautifulSoup
import csv

response = requests.get("https://www.india.ford.com/cars/aspire/", timeout=5)

if response.status_code!=200:
    print("error!")
else:
    print(response.status_code)

执行被无限期卡住。

关于使用timeout=5

我收到以下错误:

如果这是一个菜鸟问题,我很抱歉。非常感谢任何帮助! :P

【问题讨论】:

    标签: python web-scraping get python-requests-html


    【解决方案1】:

    超时需要使用try except。

    这个页面需要伪装浏览器。

    try:
        headers = {
            'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
        }
        response = requests.get("https://www.india.ford.com/cars/aspire/", headers=headers, timeout=5)
    
        if response.status_code != 200:
            print("error!")
        else:
            print(response.status_code)
    except requests.exceptions.Timeout as error:
        print('time out')
    

    【讨论】:

    • 感谢您的回复。我明白,我需要尝试,除了块。但是,问题出现在 requests.get() 中。到达后执行不会进一步进行。
    • 这是由于身份验证错误。如果您尝试curl https://www.india.ford.com/cars/aspire/,它会给您拒绝访问错误。尝试使用不同的 url 获取请求,例如-https://api.github.com,你就会明白这个问题。
    • 需要伪装浏览器,我已经更新了答案,大家可以试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多