我是scrapy的新手,我正试图从https://twitter.com/ABCTV中提取推文。我知道有API,所以这只是一个学习练习。我的代码返回零推文。我的项目定义:
import scrapy
class Tweet(scrapy.Item):
username = scrapy.Field()
data = scrapy.Field()
created_at= scrapy.Field()
retweet_count = scrapy.Field()
我的抓取工具定义:
class TwitterSpider(scrapy.Spider):
name = "twitter"
allowed_domains = ["https://twitter.com/mycpl"]
start_urls = ["https://twitter.com/mycpl"]
def parse(self, response):
sel=Selector(response)
tweets=sel.xpath('//div[@class="content"]')
items = []
for tweet in tweets:
item = Tweet()
item['username']=tweet.xpath('.//*[starts-with(@class,"username")]//text()').extract()
item['created_at']=tweet.xpath('.//*[starts-with(@class,"_timestamp")]//@data-time-ms').extract()
item['retweet_count']=tweet.xpath('.//*[starts-with(@class,"ProfileTweet-actionCountForPresentation")]/text()').extract()
item['data']=tweet.xpath('p//text()').extract()
items.append(item)
return items
请帮助我学习并解释为什么我在运行scrapy crawl twitter -o test -t json时没有收到任何回复。
已编辑 - 修复了xpath代码并且正常工作(因为滚动无限滚动问题只有20个)