Python 错误响应'';非类型';对象不可编辑';而刮网站使用刮刮
我对使用scrapy进行网页抓取还不熟悉。我试图刮一个网站(请参考代码中的URL)。 从网站上,我试图删除“通知%Month%%Year%”表下的信息,并将数据传输到json文件 我在执行命令时收到一个错误,因为“'NoneType'对象不可编辑”: scrapy爬行引号-o quotes.json 代码: 问题: 在网站中,所有的提示数据都存储在同名的表下table@class=“MsoTableGrid” 选项是我试图提取数据 选择1Python 错误响应'';非类型';对象不可编辑';而刮网站使用刮刮,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我对使用scrapy进行网页抓取还不熟悉。我试图刮一个网站(请参考代码中的URL)。 从网站上,我试图删除“通知%Month%%Year%”表下的信息,并将数据传输到json文件 我在执行命令时收到一个错误,因为“'NoneType'对象不可编辑”: scrapy爬行引号-o quotes.json 代码: 问题: 在网站中,所有的提示数据都存储在同名的表下table@class=“MsoTableGrid” 选项是我试图提取数据 选择1 response.xpath('//table[@cla
response.xpath('//table[@class=“MsoTableGrid”]').extract()
返回所有数据
选择2
response.xpath('//table[@class=“MsoTableGrid”]/tr[i]/td/p/b').extract()
返回垂直列中的几个
选择3
response.xpath('//table[@class=“MsoTableGrid”]/tr/td/p/b//text()).extract()[1]
返回整个数据中的第一个元素
问题:
- 使用Option3时,是否可以知道返回的元素是否为字符串
- 在使用Option3时,是否可以知道返回的数据的整个范围,以便我们可以遍历每个返回的元素
- 如何修复错误“非类型”对象不可编辑
启动请求中
应该是scrapy.Request
对象的生成器。您的start\u请求
不会产生任何结果:
def start_requests(self):
urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]
要解决此问题,请在start\u请求
方法中逐个生成URL:
def start_requests(self):
urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]
for url in urls:
yield Requst(url)
或者只需设置start\u URL
类属性,即可使用从scrapy.Spider
继承的默认start\u请求
方法:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]
要添加到
start\u请求
中,需要生成scrapy.Request
对象。您的start\u请求
不会产生任何结果:
def start_requests(self):
urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]
要解决此问题,请在start\u请求
方法中逐个生成URL:
def start_requests(self):
urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]
for url in urls:
yield Requst(url)
或者只需设置start\u URL
类属性,即可使用从scrapy.Spider
继承的默认start\u请求
方法:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://www.narakkalkuries.com/intimation.html#i'
]