首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scrapy -如何在链接标记内指定href以获取所有页面和论文

Scrapy -如何在链接标记内指定href以获取所有页面和论文
EN

Stack Overflow用户
提问于 2020-03-02 22:28:50
回答 1查看 44关注 0票数 0

我想要获取包含这些问题的所有页面,以及该科学期刊(https://www.sciencedirect.com/journal/phytochemistry/issues?page=1)的所有论文。

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

包含我想要转到下一页的href链接的部分是(在‘script’中):

代码语言:javascript
复制
<link rel="next" href="https://www.sciencedirect.com/journal/phytochemistry/issues?page=2" data-react-helmet="true">

到目前为止,我写的代码几乎都是空的,我想知道是否需要添加一个头来摆脱403问题:

代码语言:javascript
复制
import scrapy


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

就像上面提到的,我也想刮掉所有包含问题的href链接,但我想先得到一些帮助来获取页面并解决403问题。

我怎么才能继续写代码来完成这件事呢?

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

EN

回答 1

Stack Overflow用户

发布于 2020-03-03 12:48:08

尝试使用一些用户代理,

代码语言:javascript
复制
>>> 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]>

在scrapy请求中也应用同样的方法。

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

https://stackoverflow.com/questions/60490936

复制
相关文章

相似问题

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