我想要获取包含这些问题的所有页面,以及该科学期刊(https://www.sciencedirect.com/journal/phytochemistry/issues?page=1)的所有论文。
其中一个问题是,当我试图在scrapy shell上获取网站的url,试图发现如何指定如何获取这些页面时,我得到了一个403错误。
包含我想要转到下一页的href链接的部分是(在‘script’中):
<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初学者出现的任何明显错误,我深表歉意。
发布于 2020-03-03 12:48:08
尝试使用一些用户代理,
>>> 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请求中也应用同样的方法。
https://stackoverflow.com/questions/60490936
复制相似问题