Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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只刮取15个起始url列表中的第一个起始url_Python_Web Scraping_Scrapy_Scrapy Spider - Fatal编程技术网

Python Scrapy只刮取15个起始url列表中的第一个起始url

Python Scrapy只刮取15个起始url列表中的第一个起始url,python,web-scraping,scrapy,scrapy-spider,Python,Web Scraping,Scrapy,Scrapy Spider,我是新来的刮痧,并试图教自己的基本知识。我已经编译了一个代码,可以在路易斯安那州自然资源部的网站上检索某些油井的序列号 我在start url命令中列出了每口井的链接,但是scrasty只从第一个url下载数据。我做错了什么 import scrapy from scrapy import Spider from scrapy.selector import Selector from mike.items import MikeItem class SonrisSpider(Spider):

我是新来的刮痧,并试图教自己的基本知识。我已经编译了一个代码,可以在路易斯安那州自然资源部的网站上检索某些油井的序列号

我在start url命令中列出了每口井的链接,但是scrasty只从第一个url下载数据。我做错了什么

import scrapy
from scrapy import Spider
from scrapy.selector import Selector
from mike.items import MikeItem

class SonrisSpider(Spider):
   name = "sspider"

   start_urls = [
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=207899",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=971683",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=214206",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=159420",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=243671",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=248942",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=156613",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=972498",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=215443",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=248463",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=195136",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=179181",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=199930",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=203419",
    "http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=220454",

]


    def parse(self, response):
       item = MikeItem()
       item['serial'] =    response.xpath('/html/body/table[1]/tr[2]/td[1]/text()').extract()[0]
       yield item   

感谢您可能提供的任何帮助。如果我没有彻底解释我的问题,请让我知道,我将尝试澄清。

您的代码听起来不错,请尝试添加此函数

class SonrisSpider(Spider):
    def start_requests(self):
            for url in self.start_urls:
                print(url)
                yield self.make_requests_from_url(url)
    #the result of your code goes here

现在应该打印URL了。测试它,如果没有,请说“请”

我认为这段代码可能会有所帮助

默认情况下,scrapy可防止重复请求。因为在启动URL中只有不同的参数,所以SURY会考虑URL中的URL作为第一个URL的重复请求。这就是为什么您的爬行器在获取第一个url后停止。为了解析其余的URL,我们在scrapy请求中启用了
dont\u filter
标志。(检查
启动请求()

此spider返回的示例输出如下所示

{'serial': u'207899'}
{'serial': u'971683'}
{'serial': u'214206'}
{'serial': u'159420'}
{'serial': u'248942'}
{'serial': u'243671'}

谢谢你的回复!我很抱歉,但我是如此的新,我不知道这将去哪里的代码?它是在起始URL行之前还是之后?另外,当您说“并在for中打印一些内容以检查是否调用了每个url”时,您的意思是什么。再说一次,我是个新手,所以我知道这些可能是基本的,我道歉。在解析函数之前。打印方式为在收益率函数下面的打印“来到这里”,但在for循环中indentation@JosiahHulsey我回答你。把它放在你班上的任何地方。并在中打印如下内容:
print(“来到这里”)
。也许花点时间学习python的基础知识是个好主意
{'serial': u'207899'}
{'serial': u'971683'}
{'serial': u'214206'}
{'serial': u'159420'}
{'serial': u'248942'}
{'serial': u'243671'}