Scrapy如何在链接标签中指定href以获取所有页面和论文

2024-10-06 11:25:06 发布

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

我想获得包含这些问题的所有页面,以及由此而来的本科学期刊(https://www.sciencedirect.com/journal/phytochemistry/issues?page=1)的所有论文

其中一个问题是,当我试图在scrapy shell上获取网站的url以尝试发现如何指定如何获取这些页面时,我得到了一个403错误

包含我想进入下一页的href链接的部分是(在“脚本”中):

<link rel="next" href="https://www.sciencedirect.com/journal/phytochemistry/issues?page=2" data-react-helmet="true">

到目前为止,我编写的代码基本上是空的,我想知道是否需要添加一个头来解决403问题:

import scrapy


class PhytochemistrySpider(scrapy.Spider):
    name = "phytochemistry"
    start_urls = ['https://www.sciencedirect.com/journal/phytochemistry/issues?page=1']

如前所述,我也想删除所有包含问题的href链接,但我想在获取页面和首先解决403问题方面获得一些帮助

我如何继续编写代码来完成这项工作

提前感谢您,对于来自python和scrapy初学者的任何明显错误,我深表歉意


Tags: 代码httpscom链接www错误page科学
1条回答
网友
1楼 · 发布于 2024-10-06 11:25:06

尝试使用一些用户代理

>>> import requests
>>> requests.get(url='https://www.sciencedirect.com/journal/phytochemistry/issues?page=1')
<Response [403]>
>>> headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
>>> requests.get(url='https://www.sciencedirect.com/journal/phytochemistry/issues?page=1', headers=headers)
<Response [200]>

同样适用于刮擦请求

相关问题 更多 >