Skip to content

To scrawl data from zhihu and bilibili, etc, every day

Notifications You must be signed in to change notification settings

Halle-Astra/daily_data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

daily_data

本项目的存在主要是为了每天都从一部分网站获得数据,构造数据集,包括固定的优质网站,以及随机网站两部分。

模块说明

BaseExecutor

后续设计上来讲,可能primary也还是要改成列表的形式来进行探索了,基于requests的方案,无法提供完整的页面渲染,必须手动分析好所有的接口以获取数据

最后是只考虑一个大的入口,但是这个入口支持不同种类的xpath

  1. scratch and access
  2. click
  3. scratch
  4. post (估计没法用)

出于难度考虑,这里还是放弃了,还是单独从primary页面获取主要的candidates待爬子页面好了。

如果要考虑一种足够灵活的,其实还就是那种拼接模块的可视化方案会比较好,容易图形结合着促进理解和调整。但是那就要开发一套UI了。 不然这种的拼接,代码量很难少掉。

run_primary

支持的方法:

  1. xpath(采用get获取html代码)
  2. post接口调用

zhihu

目前主要爬取zhihu主页推荐的内容。

知乎推荐板块的内容分类:

  1. 回答 spanName=AnswerPage, subAppName=main
  2. 文章(与是否专栏无关) spanName=Post, subAppName=column

行啊,翻了好久推荐,才发现,几个星期时间,过了个年回来,知乎就不推荐视频了,把视频单独放一栏了。那刚好给我省事了。

clients

此模块实现了两套爬虫基础客户端,主要是为了方便用户能够基于自己的习惯采用不同的库,也可以两个库混合使用。

requests_client

此类主要是实现纯粹的基于Requests库的一个爬虫基础类,包含了一个session的创建与初始化, 并实现了一个默认的登录方法,如果登录方法需要定制,则可以对Client.login方法进行重写。

References

动态渲染页面

利用字符串获取类名进行实例化 1 2 3 4 5

__import__内置方法的fromlist参数,巨坑!

发现了一个很牛的爬虫库的样子,本项目估计是不会去学这个的,到时再研究研究

如何在python项目中添加js的依赖(和前端直接加一样,只是注意下目录就好了)

(0, func)[args]

Notes

JS修改当前网页地址

window.location.href="xxxx"

About

To scrawl data from zhihu and bilibili, etc, every day

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published