Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search LinkedIn抓取多个页面_Search_Scrapy_Linkedin - Fatal编程技术网

Search LinkedIn抓取多个页面

Search LinkedIn抓取多个页面,search,scrapy,linkedin,Search,Scrapy,Linkedin,我知道有人在讨论是否允许删除LinkedIn;但从以下文章: 我认为可以肯定地说,从LinkedIn中抓取公开可用的数据是合法的 现在,我正试图在特定的地区搜寻特定的职位。 到目前为止,一切都很好,除了被裁工作的数量限制在25个之外 我尝试使用以下技巧: 在URL中,我传递了一个关键字&start=X X从0到25,50,依此类推 在浏览器中,这允许我转到下一页视图并从中提取作业。 但是,使用scrapy此方法不起作用 代码如下: res = requests.get('https://www

我知道有人在讨论是否允许删除LinkedIn;但从以下文章:

我认为可以肯定地说,从LinkedIn中抓取公开可用的数据是合法的

现在,我正试图在特定的地区搜寻特定的职位。 到目前为止,一切都很好,除了被裁工作的数量限制在25个之外

我尝试使用以下技巧: 在URL中,我传递了一个关键字&start=X X从0到25,50,依此类推

在浏览器中,这允许我转到下一页视图并从中提取作业。 但是,使用scrapy此方法不起作用

代码如下:

res = requests.get('https://www.linkedin.com/jobs/search/?keywords={}&location={}&start=25'.format(job, location))

response = TextResponse(res.url, body=res.text, encoding='utf-8')

print("processing:" + response.url)
输出:

处理:

即使我将其硬编码为25(第2页),它也会将其设置为0


你知道如何解决这个问题吗?

只需在scrapy shell上使用REDIRECT_ENABLED=0设置禁用重定向中间件即可

scrapy shell -s REDIRECT_ENABLED=0 "https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=75"
_

2019-10-24 21:50:09 [scrapy.core.engine] DEBUG: Crawled (303) <GET https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=75> (referer: None)
[s] Available Scrapy objects:
[s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s]   crawler    <scrapy.crawler.Crawler object at 0x0684AB30>
[s]   item       {}
[s]   request    <GET https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=75>


In [2]: fetch('https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=50')
2019-10-24 21:56:39 [scrapy.core.engine] DEBUG: Crawled (303) <GET https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=50> (referer: None)

In [3]: fetch('https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=100')
2019-10-24 21:56:49 [scrapy.core.engine] DEBUG: Crawled (303) <GET https://www.linkedin.com/jobs/search/?keywords=Data+Scientist&location=Brussels&start=100> (referer: None)
此中间件根据响应状态处理请求重定向。

你说的“在浏览器中”是什么意思?。我在Google Chrome上试过,如果你指定start=some\u number,它会将你重定向到start=0。你能描述一下你从25岁开始在浏览器中可视化结果所采取的步骤吗?对我来说不是,谷歌浏览器也是。我只是复制了这个链接,例如:你具体看到了什么。当你往下看时,要看到更多的作业,你会看到页码还是“单击以查看更多作业”?是的,我看到了更多的作业,但在我的情况下它不会指向任何内容,如果我将url更改为start=25,它会将我重定向到start=0。
class MySpider(CrawlSpider):
    handle_httpstatus_list = [301, 302]