Web scraping 抓取网站时数据丢失
我正在尝试废弃一个网站(请参考代码中的URL)。 在这个网站上,我试图删除所有信息,并将数据传输到json文件Web scraping 抓取网站时数据丢失,web-scraping,scrapy,scrapy-shell,Web Scraping,Scrapy,Scrapy Shell,我正在尝试废弃一个网站(请参考代码中的URL)。 在这个网站上,我试图删除所有信息,并将数据传输到json文件 scrapy shell http://www.narakkalkuries.com/intimation.html 从网站中提取信息 response.xpath('//table[@class="MsoTableGrid"]/tr/td[1]//text()').re(r'[0-9,-/]+|[0-9]+') 我能够从网站上检索到大部分信息 关注点: 可以取消“通知”下的数据,
scrapy shell http://www.narakkalkuries.com/intimation.html
从网站中提取信息
response.xpath('//table[@class="MsoTableGrid"]/tr/td[1]//text()').re(r'[0-9,-/]+|[0-9]+')
我能够从网站上检索到大部分信息
关注点:
可以取消“通知”下的数据,但“2017年9月通知”除外,不能取消此选项卡下的信息
查找:
对于“2017年9月通知”,该值存储在span标签中
/html/body/div[4]/div[2]/div/table/tbody/tr[32]/td[1]/table/tbody/tr[1]/td[1]/p/b/span
剩余月份的值存储在字体标记中
/html/body/div[4]/div[2]/div/table/tbody/tr[35]/td[1]/table/tbody/tr[2]/td[1]/p/b/span/font
如何提取“2017年9月通知”的信息?您的表使用不同的
@class
(MsoTableGrid
和MsoNormalTable
),因此您需要某种方法来处理所有这些信息:
for table in response.xpath('//table[@width="519"]'):
for row in table.xpath('./tr[position() > 1]'):
for cell in row.xpath('./td'):
#you can stringify value
cell_value = cell.xpath('string(.)').extract_first()
非常感谢您帮助我指出“MsoTableGrid”和“MsoNormalTable”是不同的表。我修改了现有的Xpath“response.Xpath”('//table[@class=“MsoTableGrid”或@class=“MsoNormalTable”]/tr/td[1]//text())。re(r'[0-9,-/]+|[0-9]')现在我能够检索到所需值的值