Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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/9/apache-flex/4.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 scrapy的动态url爬网_Python_Scrapy - Fatal编程技术网

使用python scrapy的动态url爬网

使用python scrapy的动态url爬网,python,scrapy,Python,Scrapy,使用python scrapy,我能够抓取单个静态url,但如何抓取动态url? 像,像智者一样 单个静态页面的工作代码 import scrapy class GetTestSpider(scrapy.Spider): name = "testspeder" start_urls = ["https://www.britannica.com/place/Mumbai"] def parse(self,response): """Function to pro

使用python scrapy,我能够抓取单个静态url,但如何抓取动态url? 像,像智者一样

单个静态页面的工作代码

import scrapy 
class GetTestSpider(scrapy.Spider):
    name = "testspeder"
    start_urls = ["https://www.britannica.com/place/Mumbai"]

    def parse(self,response):
    """Function to process search results page"""
    for site in response.xpath("//div[@class='infinite-pagination-container container']"):
        item = {
            'city': site.xpath(".//h1/text()").extract_first(default='').strip(),
            'writtenby': site.xpath(".//div[@class='md-byline']/div[@class='written-by']/span/text()").extract_first(default='').strip(),
            'alternativename': site.xpath(".//div[@class='md-alternate-titles']/text()").extract_first(default='').strip(),
        }
        yield item   

您可以在
parse
函数中生成请求

然后,该请求将由另一个处理,如:


...
如果项目[“url\u地址”]:
让步请求(
url=项目[“url\u地址”],
callback=self.your\u func\u用于\u解析,
元={
“项”:项,
“不要重定向”:对,
“句柄\u httpstatus\u列表”:[302]
}
)
定义用于解析的函数(self,response):
item=response.meta['item']
...

您的代码可以很好地处理多个位置条目,您还想实现什么?@chrisckwong821,请检查是否已更新question@Gallaecio,基于上面的教程,我已经创建了一个演示。有什么是不工作的?到目前为止,您尝试了什么来克服它?有跟踪堆栈吗?实际问题是什么?问题是在我运行“scrapy crawl getpincodespider_xpath-o test1.json”时没有提取数据,请检查更新后的问题和跟踪stackAll是否正常-请检查
response.xpath(“//div[@class='eight columns']/ul/li”)
是否给出任何结果。使用Pincodes报废的网页
[“304210”,“304230”]
此处没有任何内容。检查webrowser是否正常工作,xpath不是问题,请检查我的工作代码中的静态url。转到:(来自静态)-有很多结果。转到:(从你的动态)-那里没有结果。没有可以报废的记录。