nghuyong / WeiboSpider

持续维护的新浪微博采集工具🚀🚀🚀
MIT License
3.66k stars 825 forks source link

关于抓取User学习和工作经历的可能性 #186

Closed ZhiliWang closed 3 years ago

ZhiliWang commented 3 years ago

请教一下,之前和你探讨过在user爬虫里加上爬取用户教育和工作经历的功能,但是实际操作起来遇到一些障碍,想和你探讨一下:

Screen Shot 2020-11-05 at 5 38 48 PM

本来觉得和其他items都在 'body/div[@class="c"]//text()'里,直接根据'·'来找就好了,结果后面发现如果用户输入了多个工作或学习经历的话会变成这样:

Screen Shot 2020-11-05 at 5 36 36 PM

所以我最先想出的解决办法是学习经历用regex搜 '(.?)(学院|学校|大学|分校)(.?)级$;' ,保留了”级“是因为也想抓取毕业年份以及在职时间,但效果还不是很理想。而且工作经历我实在是想不出怎么精确抓取了,毕竟很多人的工作经历五花八门,名字不一定带公司(比如”自由职业者“之类的)。我在想xpath有没有可能做到更精确的定位,虽然是body/div-class-c/text(),但我学习和工作经历的只搜索紧跟在包含”工作经历“或”学习经历“的两个div-class-tip后面的class-c?

另外也希望能请教一下你写这些parse函数时用了什么工具来看html/css结构?是浏览器自带的开发者模式吗?非常感谢!

ZhiliWang commented 3 years ago

我想出来了,半天xpath速成

nghuyong commented 3 years ago

好的呀,欢迎提交PR

ZhiliWang commented 3 years ago

好的呀,欢迎提交PR

Screen Shot 2020-11-07 at 5 57 47 PM

嗯好的,我是想配合上图中的这个想法一起提交PR: 我想抓学习和工作经历的本意就是想同时实现这个用关键字找出用户名单的功能,配合得出一批指定领域里认证用户的完整个人信息,而我通过一些抽样调查发现这些人里还是有不少填写了自己的教育和工作经历。比方说想做新冠相关的nlp研究,在爬取带”新冠“或”covid“等关键字的语料外,同时从医护人员的个人信息方面入手。而且一旦实现,也能对接你tweet spider,在得出这批用户的名单后直接搜他们的个人推文。这个搜索功能能给出名字或资料里带输入关键字的用户名单,而且搜索结果能生成带规律的URL,但我还有一些暂时解决不了的bug。我注意到你的spider在涉及到user时都要手工逐个输入user_id,所以在想你之前有没有类似的想法或遇到一些无法解决的坑。是不是理论上只要一个网站能生成带规律的URL,同时没有高于scrapy能力范围的反爬功能就能抓。

nghuyong commented 3 years ago

@ZhiliWang 这个想法非常棒!可以添加一个根据关键词找人的爬虫。你现在进展如何啦? “是不是理论上只要一个网站能生成带规律的URL,同时没有高于scrapy能力范围的反爬功能就能抓”,对的,理论上通过在网页上重复机械的浏览行为,都可以通过爬虫程序自动化进行。

ZhiliWang commented 3 years ago

@nghuyong user.py 里增加了教育和职业经历的抓取和parse,测试了大概2万个用户后暂时没问题。

新增的user_search.py,就是我前面提到的“搜人”,还有几个bug没解决。不知道能不能再github以外的平台请教你(比如邮箱或微信)?觉得在issue讨论可能不妥?

最近期末考试,同时花了很多时间在试图给整个爬虫程序用flask或django做一个网页用户交互,然后增加NLP/数据分析的功能做成一个we dashboard,但这样的话由于要让用户方便输入参数整个程序结构要大改,所以耽搁了不少时间。不知道你是否有过做UI的想法

另外,我看了你以前为这个项目发布的文章和之前的一些commits,以前是可以(1)自动化获取cookies (2)抓取网络版微博weibo.com。但现在这两项都由于反爬而暂时无法实现是吗?

我可以先提交我的新user.py

nghuyong commented 3 years ago

@ZhiliWang 给我发邮件吧 nghuyong@163.com,我们微信交流~