Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Python 跟踪网页中的ajax内容并保持爬网_Python_Ajax_Xmlhttprequest_Scrapy_Web Crawler - Fatal编程技术网

Python 跟踪网页中的ajax内容并保持爬网

Python 跟踪网页中的ajax内容并保持爬网,python,ajax,xmlhttprequest,scrapy,web-crawler,Python,Ajax,Xmlhttprequest,Scrapy,Web Crawler,我想使用Scrapy做的是跟踪中的所有应用程序链接,以抓取每个链接中的内容 一般分为两步: 获取所有链接并提取其中的每个链接 点击链接获取内容 问题是这些链接是基于ajax的。所以我使用“formdata”来模拟xhr请求,并将这些链接首先存储在项目中 我已经完成了大部分代码,现在能够获得所有链接,感谢人们的帮助 然而,当我试图通过链接获取更多内容时,一切都出了问题 这是我的密码 def start_request(self,response): for i in range(0,10)

我想使用Scrapy做的是跟踪中的所有应用程序链接,以抓取每个链接中的内容

一般分为两步:

  • 获取所有链接并提取其中的每个链接

  • 点击链接获取内容

  • 问题是这些链接是基于ajax的。所以我使用“formdata”来模拟xhr请求,并将这些链接首先存储在项目中

    我已经完成了大部分代码,现在能够获得所有链接,感谢人们的帮助

    然而,当我试图通过链接获取更多内容时,一切都出了问题

    这是我的密码

    def start_request(self,response):
        for i in range(0,10): 
            yield scrapy.Request(url="https://play.google.com/store/apps/category/GAME/collection/topselling_new_free?authuser=0", method="POST", formdata={'start':str(i*60),'num':'60','numChildren':'0','ipf':'1','xhr':'1','token':'m1VdlomIcpZYfkJT5dktVuqLw2k:1455483261011'}, callback=self.parse)
    
    def parse(self,response):
        item = googleAppItem()   
        map = {}
        links = response.xpath('//a/@href').re(r'/store/apps/details.*')
        for l in links:
            if l not in map:
                map[l] = True
                item['url']=l
                l = "http://play.google.com"+str(l)
                request = scrapy.Request(l,callback=self.parse_every_app)
                request.meta['item'] = item
                return request
    def parse_every_app(self,response):
    
    有人能帮我吗

    这是cmd运行代码出错时的屏幕截图。

    您遇到了什么错误?我添加了cmd的屏幕截图。输出的只是两条关于app_name、developer等内容的重复记录。根本没有链接…屏幕截图中的上述错误与您提出的问题没有任何关联。显示到目前为止您所尝试的内容的完整代码。另外,您是否尝试过在这个功能
    def parse\u every\u app(self,response):
    中刮取任何数据?显示代码。谢谢!我已经解决了这个问题。代码本身没有错误。也许是缩进什么的。。。不管怎样,我终于成功了。谢谢