使用python(Beautifulsoup)进行网页抓取

2024-10-01 10:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始学习使用pythonBeautifulsoup和请求库以及使用Pycharm工具进行web抓取

import requests
from bs4 import BeautifulSoup
    
result1 = requests.get("https://www.grainger.com/")
print('result1 is '+ str(result1.status_code))

当我使用这个网站时,它会持续加载,如果我使用google.com,它会给出输出

我想知道为什么我没有得到上述网站的输出


Tags: 工具fromhttpsimportcomwebget网站
2条回答

嗯。。。有几件事

  1. 该网站可能不存在
  2. 您正在使用http而不是https
  3. 该站点阻止抓取(发送用户代理标头)
  4. 这可能是请求的问题。尝试使用其他库

要从此站点获取状态200,请指定User-AgentHTTP头:

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0'}

result1 = requests.get("https://www.grainger.com/", headers=headers)

print('result1 is '+ str(result1.status_code))

印刷品:

result1 is 200

这样做之所以有效,是因为有些网站会忽略那些似乎不是从web浏览器发出的请求。默认情况下,requests使用User-Agent{},因此网站可以告诉您没有从web浏览器请求网站。您的请求挂起并最终超时的原因可能是因为他们的服务器忽略了您的请求

相关问题 更多 >