Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 2.7 无法正确使用刮屑器刮取特定部位_Python 2.7_Web Scraping_Scrapy - Fatal编程技术网

Python 2.7 无法正确使用刮屑器刮取特定部位

Python 2.7 无法正确使用刮屑器刮取特定部位,python-2.7,web-scraping,scrapy,Python 2.7,Web Scraping,Scrapy,我浏览了Scrapy的教程,我能够理解如何废弃教程中包含的站点。但我在一些更复杂的网站上遇到了一些小麻烦(至少对我来说是这样) 我正试图从这个网页上截取内幕交易的行和列: 我在scrapy中使用命令提示符命令来测试我是否能够刮取必要的信息,因此下面的命令就是我在命令提示符中编写的 scrapy shell "http://finviz.com/insidertrading.ashx" 然后,我使用firefox中的firebug查看页面的html代码 我可以通过以下代码将一些信息(股票名称、

我浏览了Scrapy的教程,我能够理解如何废弃教程中包含的站点。但我在一些更复杂的网站上遇到了一些小麻烦(至少对我来说是这样)

我正试图从这个网页上截取内幕交易的行和列:

我在scrapy中使用命令提示符命令来测试我是否能够刮取必要的信息,因此下面的命令就是我在命令提示符中编写的

scrapy shell "http://finviz.com/insidertrading.ashx"
然后,我使用firefox中的firebug查看页面的html代码

我可以通过以下代码将一些信息(股票名称、内幕人士姓名和日期)输入列表:

response.css('td a.tab-link::text').extract()
但是,其余的信息丢失了

我可以通过这段代码获得一些(可能是大部分)缺失的信息(成本、份额、价值等)

response.css(td::text).extract()
我不知道如何在一次搜集中把所有的信息都收集起来

谢谢


编辑:另一个选项是以迭代方式收集数据,一次一行,这样我就可以根据自己的喜好将数据分开。我也在思考这个问题

由于数据为表格,因此表行和列的位置是可预测的和稳定的。您只需提取行中的所有文本并将其解压缩为变量:

for row in response.xpath("//tr[@class='insider-option-row']"):
    items = row.xpath('td/a/text() | td/text()').extract()
    ticker, owner, relationship, date, transaction, cost, shares, value, shares_total, sec_form_4 = items