当href ='#'时,有什么方法可以处理?

时间:2020-03-03 06:34:21

标签: python web-scraping scrapy

在从名为Timesjob的网站上抓取所有内容时,由于页面国家类别中的href显示为 href ='#',我无法访问网站的下一页,在这里我无法访问此类超链接。因此,我无法从所有页面上抓取数据,是否有任何方法可以解决获取确切超链接的问题,请回答。谢谢。 我尝试访问的链接是https://www.timesjobs.com/candidate/job-search.html?searchType=personalizedSearch&from=submit&txtKeywords=python&txtLocation=bangalore

2 个答案:

答案 0 :(得分:1)

您需要调试一下发出分页请求时正在执行的操作。 网站没有为下一页存储hrefs,因为它是在运行时生成的动态URL。 我为page 7测试了它,这是创建的链接

https://www.timesjobs.com/candidate/job-search.html?from=submit&actualTxtKeywords=python&searchBy=0&rdoOperator=OR&searchType=personalizedSearch&txtLocation=bangalore&luceneResultSize=25&postWeek=60&txtKeywords=python&pDate=I&sequence=7&startPage=1

在主页上时,您需要确定页面源中存在的页面总数,然后生成这些请求的列表并点击它们。您还将从分页中获取所有数据

答案 1 :(得分:1)

值得注意的是,您也可以使用结果大小。我很幸运在这里一页上获得1000。这可能会对您有很大帮助。我尝试了3400,但失败了,您必须尝试找出限制。无论哪种方式,这对您来说都将使这项工作变得容易得多。

https://www.timesjobs.com/candidate/job-search.html?from=submit&actualTxtKeywords=python&searchBy=0&rdoOperator=OR&searchType=personalizedSearch&txtLocation=bangalore&luceneResultSize=1000&postWeek=60&txtKeywords=python&pDate=I&sequence=2&startPage=1

这不能解决导航到#的问题,但是可以解决抓取所有结果的问题。另外,请注意,起始页始终保持为1,并且使用序列变量进行分页。

start_urls = ['https://www.timesjobs.com/candidate/job-search.html?from=submit&actualTxtKeywords=python&searchBy=0&rdoOperator=OR&searchType=personalizedSearch&txtLocation=bangalore&luceneResultSize=1000&postWeek=60&txtKeywords=python&pDate=I&sequence={}&startPage=1']

def start_requests(self):
    for i in range(1, 4):
        yield scrapy.Request(self.start_urls[0].format(i), callback=self.parse)