-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
增加爬取话题功能 #104
Comments
感谢建议,其实这个就是微博搜索的功能,只不过关键字带有#符号。 之前的程序已经实现这个功能了,只是因为比较简陋,所以没有上传。
这是利用本程序修改的,功能较少,但主要功能都有。用法是先把程序前几行的your cookie换成自己的cookie。然后再把mian函数中的keyword换成自己要搜索的关键词,如果搜索普通关键词如test,代码如下:
如果搜索话题#test#:
注意关键词两边的#一定要替换成%23 |
感谢反馈,我现在电脑不在身边,没法调试。目测是第一行没有获取到数据,第二行却以为有数据且取了该列表的第一个值,所以越界。可以在取info数据前先判断下它的长度,如果大于1才执行第二行代码,否则is_exist直接赋值为False,大致就是这样。 |
您好,非常感谢。我在爬取话题里原创微博的过程中遇到了问题,每次只能爬74条左右的原创微博,请问这是被微博发现做出了限制,还是因为话题里可显示微博的数量本来就只有这么多?(我找了一下发现话题里好像是不分页码的,所以只能爬默认的第一页?) |
@Cherno6
代码的意思是每1-5页,随机等待6-10秒,你可以按自己需要修改,等待频率越快,等待时间越久,被限风险越低 |
谢谢您,我再尝试尝试增加等待时间😄 |
搜索选项中,还可以设置时间区间来得到想要的结果 |
@barnett2010 就是替换get_one_page方法和get_weibo_info方法中url后面的内容,稍微做些修改,如keyword和page换成变量,参考原来的内容就可以。 还有,因为很多搜索,一天的搜索结果可能就很多,而微博最多显示100页。为了获取更多信息,可以把starttime和endtime做成变量。如把20140901和20151001按天拆开,放到列表里,['20140901', '20140902',......, '20151001']。作一个循环,每次给starttime和endtime同一个日期,这样应该能多获取很多信息。 |
您好,请问一下上述修改时间区间来得到想要的结果,可以再说得详细一点吗?我只能根据修改最后的page来获取更多的微博。其次,还想问一下,可以根据地区来爬吗?比如想要北京的关于某个关键词的近两个月的数据。 |
@Is-Sakura-i 因为微博搜索最多只显示100页,为了获取更多的结果,可以加上日期,每个日期都能获取100页,这样获取的数量就多了。 暂时无法按地区爬,但是你可以把地区名包含在关键字里,这样的搜索结果即满足地区又满足想要的关键字 |
感谢大佬回复!!!请问一下,就是在get_one_page方法里url 为url = 'https://weibo.cn/search/mblog?keyword=%s&page=%d' % (self.keyword, page),没有后面关于时间的,所以是要在这个后面加嘛? |
@Is-Sakura-i |
@dataabc 您好!我按照您的意思改成了下列代码。(只截取了部分改了的代码)能麻烦帮我看看嘛?非常感谢!(本人小白一只)
然后报的错是 : |
url有三个变量,starttime、endtime和keyword,你只写了一个 |
@dataabc 好的!已经可以运行啦~谢谢!大赞 |
您好 我是超级小白 也想按照日期爬取主题做论文数据 您的代码可以发一下嘛 |
修改了现在的代码,可以搜索关键字以及带#的话题了。
config_search.json增加了keyword_list、start_time、end_time参数,删除了since_date。
如果想搜索包含#话题:
如果想搜索多个关键字都包含的结果:
start_time和end_time是微博的发布时间范围,结果微博的发布时间位于start_time和end_time之间,值为"yyyy-mm-dd"形式。其它参数的含义和本程序一样,可以参考本程序的README。 search.py代码如下:
|
@dataabc 感谢。原来的那个代码可以了,然后我用您新写的这个代码跑了一下,代码越界错误?因为我电脑上没有 MongoDB数据库和MYSQL数据库,所以把相关的代码删掉了。然后在config_search.json文件中改了cookie和keyword ,其余的都没有改。 |
太感谢您了! 居然连调配参数的都做好了! 对于我这种超级小白太友好了 |
@Is-Sakura-i |
@puppyK |
程序运行没问题! 就是用户名称跟博文在excel的一个单元格里。另外如果能爬取uid就更好啦! |
@puppyK |
感谢大佬。最新的search.py 已经可以日期自动加1天来搜索了吗? |
@barnett2010 |
感谢 成功运行新代码 而且看到大佬还把默认爬取10页改成爬取当天全部信息!不过之前我跟朋友尝试调整把用户名跟正文分开啦 还有个问题是如果我有了一个话题下的1000个用户参与 我还想爬取这1000个用户的全部微博 可以怎么实现 |
@puppyK |
@dataabc 您好。昨天报的错应该是没有搜索结果造成的,非常感谢您!提个小小的建议哈,我觉得某天没有搜索结果可以提示一下用户…真的很感谢大佬,我觉得您是我学编程以来遇到的最好的人了,技术高也很有耐心,感谢大佬!!! |
@Is-Sakura-i |
@dataabc 好的!谢谢!大佬早点休息! |
"write_mode": ["csv","txt","json","mysql"], -------报错信息 Error: (1060, "Duplicate column name 'user_id'") |
Error: (1049, "Unknown database 'weibo'") Mysql 里事先没有weibo库存在时,报上面的错 |
我使用的是wampserver314 |
@barnett2010 |
@dataabc 感谢大佬的回复,辛苦啦。 爬取结束后,csv生成正常。 ============================ "filter": 1,
|
@barnett2010 |
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1007, u"Can't create database 'weibo'; database exists") 运行的时候,报错数据库已存在,请问有遇到的吗 |
@modun |
看见已经更新了,谢谢! |
@dataabc 果然删除这句就好了 user_id varchar(12) 已获取迪丽热巴的第100页微博---------------------------619条微博写入json文件完毕,保存路径: |
请问更新后,需重新部署吗?还是只替换下py文件就可以。 |
==================
|
@modun |
@barnett2010 |
@Is-Sakura-i |
@dataabc 非常感谢大佬提醒!很抱歉现在才看到,刚刚运行了一下,是可以的呢~谢谢大佬呀 |
@dataabc 您好大佬,我想问您一下,如果我想得到每条微博对应的用户id的话,应该如何修改这段代码呢。 |
@Amamiyatsuki |
非常感谢您的回答,您的这些项目对我很有帮助。 |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Closing as stale, please reopen if you'd like to work on this further. |
为什么pycharm里用requests爬取的图片,无法打开,显示“图像未加载,尝试从外部打开修正格式问题!” |
@Ya-Hou 有错误信息吗? |
@Ya-Hou 您尝试免cookie版看看。 |
首先感谢您的辛苦工作,我试用了一下,很好用,数据抓下来以后简单处理就可以用了。
是否可以增加爬取某个话题的功能呢,因为爬取某个人的微博意义有限,而根据话题拿到的数据研究的价值就更高了。
The text was updated successfully, but these errors were encountered: