繁体   English   中英

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

[英]Web Scraping using python(Beautifulsoup)

我刚刚开始使用 python Beautifulsoup和 requests 库以及使用 Pycharm 工具学习网络抓取。

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

当我使用这个网站时,它一直在加载,如果我使用google.com它会给出输出。

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

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

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 python-requests ,因此该网站可以告诉您不是从 Web 浏览器请求该网站。 您的请求挂起并最终超时的原因可能是因为他们的服务器忽略了您的请求。

嗯……有几件事。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM