weibo-search icon indicating copy to clipboard operation
weibo-search copied to clipboard

定义一个时间段,执行多次,永远只能爬取最后一天的数据,这是什么情况呢?感谢作者提供的代码!

Open wdj1995 opened this issue 2 years ago • 5 comments

wdj1995 avatar Aug 30 '23 01:08 wdj1995

这可能是微博的限制,程序获取的是微博网页版的搜索结果,没有删除微博。

dataabc avatar Aug 30 '23 18:08 dataabc

我也是,请问这个怎么解决啊

ghost avatar Oct 13 '23 08:10 ghost

我也是,请问这个怎么解决啊

BOT_NAME = 'weibo' SPIDER_MODULES = ['weibo.spiders'] NEWSPIDER_MODULE = 'weibo.spiders' COOKIES_ENABLED = False TELNETCONSOLE_ENABLED = False LOG_LEVEL = 'ERROR'

访问完一个页面再访问下一个时需要等待的时间,默认为10秒

DOWNLOAD_DELAY = 15 DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7', 'cookie': '!!!!!!!your cookie!!!!!!!!!' }

ITEM_PIPELINES = { 'weibo.pipelines.DuplicatesPipeline': 300, 'weibo.pipelines.CsvPipeline': 301, # 'weibo.pipelines.MysqlPipeline': 302, # 'weibo.pipelines.MongoPipeline': 303, # 'weibo.pipelines.MyImagesPipeline': 304, # 'weibo.pipelines.MyVideoPipeline': 305 }

要搜索的关键词列表,可写多个, 值可以是由关键词或话题组成的列表,也可以是包含关键词的txt文件路径,

如'keyword_list.txt',txt文件中每个关键词占一行

KEYWORD_LIST = ['话题'] # 或者 KEYWORD_LIST = 'keyword_list.txt'

KEYWORD_LIST = [''] # 或者 KEYWORD_LIST = 'keyword_list.txt'

要搜索的微博类型,0代表搜索全部微博,1代表搜索全部原创微博,2代表热门微博,3代表关注人微博,4代表认证用户微博,5代表媒体微博,6代表观点微博

WEIBO_TYPE = 0

筛选结果微博中必需包含的内容,0代表不筛选,获取全部微博,1代表搜索包含图片的微博,2代表包含视频的微博,3代表包含音乐的微博,4代表包含短链接的微博

CONTAIN_TYPE = 0

筛选微博的发布地区,精确到省或直辖市,值不应包含“省”或“市”等字,如想筛选北京市的微博请用“北京”而不是“北京市”,想要筛选安徽省的微博请用“安徽”而不是“安徽省”,可以写多个地区,

具体支持的地名见region.py文件,注意只支持省或直辖市的名字,省下面的市名及直辖市下面的区县名不支持,不筛选请用“全部”

REGION = ['全部']

搜索的起始日期,为yyyy-mm-dd形式,搜索结果包含该日期

START_DATE = '2023-08-01'

搜索的终止日期,为yyyy-mm-dd形式,搜索结果包含该日期

END_DATE = '2023-08-22'

进一步细分搜索的阈值,若结果页数大于等于该值,则认为结果没有完全展示,细分搜索条件重新搜索以获取更多微博。数值越大速度越快,也越有可能漏掉微博;数值越小速度越慢,获取的微博就越多。

建议数值大小设置在40到50之间。

FURTHER_THRESHOLD = 40

图片文件存储路径

IMAGES_STORE = './'

视频文件存储路径

FILES_STORE = './'

配置MongoDB数据库

MONGO_URI = 'localhost'

配置MySQL数据库,以下为默认配置,可以根据实际情况更改,程序会自动生成一个名为weibo的数据库,如果想换其它名字请更改MYSQL_DATABASE值

MYSQL_HOST = 'localhost'

MYSQL_PORT = 3306

MYSQL_USER = 'root'

MYSQL_PASSWORD = '123456'

MYSQL_DATABASE = 'weibo'

#这是我的配置文件的参数,可以参考,后面需要使用命令行运行该文件,应该不会有问题。

wdj1995 avatar Oct 13 '23 14:10 wdj1995

非常感谢作者大大的回复,但这个不是微博“数据最大化”来解决么,我的配置和您是一样的捏

ghost avatar Oct 16 '23 07:10 ghost

@FrejaWong 您可以把时间段缩短为一天,多次执行,每次不同日期配置,达到时间段的效果。

dataabc avatar Oct 16 '23 17:10 dataabc