WeiboCrawler
WeiboCrawler copied to clipboard
爬取数据的存储问题
您好我在使用本项目时代码正常运行,但每次爬取的数据无法及时储存,当程序结束后【user.csv】文件才有数据内容,请问大佬如何修改呀。
已自行解决问题,可爬取每个链接后及时储存数据。 解决方案:修改piplines.py中的【class WeibocrawlerPipeline(object)】如下
def process_item(self, item, spider):
base_dir = '结果文件'
if not os.path.isdir(base_dir):
os.makedirs(base_dir)
file_path = base_dir + os.sep + 'Userinfo' + '.csv'
if not os.path.isfile(file_path):
is_first_write = 1
else:
is_first_write = 0
if item:
with open(file_path, 'a', encoding='utf-8-sig', newline='') as f:
writer = csv.writer(f)
if is_first_write:
header = [
'id', 'nick_name', 'user_id', 'gender', 'brief_introduction', 'mblogs_num',
'follows_num', 'fans_num', 'vip_level', 'authentication', 'verified_type', '_level'
]
writer.writerow(header)
writer.writerow(
[item[key] for key in item.keys()])
return item
其中header 需跟实际情况自行修改。 header = [ 'id', 'nick_name', 'user_id', 'gender', 'brief_introduction', 'mblogs_num', 'follows_num', 'fans_num', 'vip_level', 'authentication', 'verified_type', '_level' ] 跟items.py中的【class UserItem(Item)】类内容保持一致。
兄弟,请问一下你Scrapy的版本是1.5.1,还是用的更高版本?我运行的时候报错了,想确定一下是不是版本问题。