WeiboCrawler icon indicating copy to clipboard operation
WeiboCrawler copied to clipboard

爬取数据的存储问题

Open Chrisma-98 opened this issue 3 years ago • 2 comments

1640168005(1) 您好我在使用本项目时代码正常运行,但每次爬取的数据无法及时储存,当程序结束后【user.csv】文件才有数据内容,请问大佬如何修改呀。

Chrisma-98 avatar Dec 22 '21 10:12 Chrisma-98

已自行解决问题,可爬取每个链接后及时储存数据。 解决方案:修改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)】类内容保持一致。

Chrisma-98 avatar Dec 22 '21 10:12 Chrisma-98

兄弟,请问一下你Scrapy的版本是1.5.1,还是用的更高版本?我运行的时候报错了,想确定一下是不是版本问题。

liliners avatar Jun 05 '22 05:06 liliners