首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >爬行亚马逊

爬行亚马逊
EN

Stack Overflow用户
提问于 2016-12-18 09:00:36
回答 2查看 974关注 0票数 0

我正在尝试创建一个Python网络爬虫,但由于某些原因,当我尝试爬取一个网站时,例如亚马逊,我的程序打印出的唯一内容是'None‘。

代码语言:javascript
运行
复制
import requests
from bs4 import BeautifulSoup

def spider(max_pages):
    page = 1
    while page <= max_pages:
        url = 'https://www.amazon.com/s/ref=sr_pg_2?rh=i%3Aaps%2Ck%3Apython&page=' + str(page) + '&keywords=python&ie=UTF8&qid=1482022018&spIA=B01M63XMN1,B00WFP9S2E'
        source = requests.get(url)
        plain_text = source.text
        obj = BeautifulSoup(plain_text, "html5lib")

        for link in obj.find_all('a'):
            href = link.get(url)
            print(href)
        page += 1

spider(1)
EN

回答 2

Stack Overflow用户

发布于 2021-08-06 15:13:48

您需要考虑请求中的头部和参数。您可以执行以下步骤来简化任务:

  1. 右键单击要抓取的站点,然后选择“检查”。(谷歌浏览器默认设置)
  2. 进入“网络”菜单,右击你想要抓取的请求。
  3. 选择"Copy as cURL“。
  4. 转到其中一个转换器站点,如"https://curl.trillworks.com/”,获取你想要的Python代码(或其他语言)
票数 1
EN

Stack Overflow用户

发布于 2016-12-18 09:28:40

不使用User-Agent:

代码语言:javascript
运行
复制
requests.exceptions.HTTPError: 503 Server Error: Service Unavailable for url: https://www.amazon.com/s/ref=sr_pg_2?rh=i%3Aaps%2Ck%3Apython&page=1%20%27&keywords=python&ie=UTF8&qid=1482022018&spIA=B01M63XMN1,B00WFP9S2E%27

使用用户代理:

代码语言:javascript
运行
复制
headers = {'User-Agent':'Mozilla/5.0'}
r = requests.get('https://www.amazon.com/s/ref=sr_pg_2?rh=i%3Aaps%2Ck%3Apython&page=1%20%27&keywords=python&ie=UTF8&qid=1482022018&spIA=B01M63XMN1,B00WFP9S2E%27', headers=headers)

它工作得很好。

How to prevent getting blacklisted while scraping您可以阅读此页面,了解为什么要使用UA。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41204559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档