Python 爬虫 请教能实现我的这两点吗?

2020-06-13 10:04:13 +08:00
 leihongjiang

因为自己需要浏览很多的页面,工作量太大,也找不到合适类似的软件. 所以自己想写两个爬虫

1:根据需要的网站 爬取到标题和 url 根据自己的需求浏览 2:设置关键词 搜索 全部抓取数据 然后设置爬虫判断是否展示

如果 Python 小白 开始学习的话.需要多长的时间可以.

4235 次点击
所在节点    程序员
43 条回复
tlday
2020-06-13 14:22:00 +08:00
@falcon05 并不是每个网站都有 RSS feed,也不是每个网站的 sitemap 都健全,还有一些 SPA 单页应用的网站链接和内容是动态 js 渲染的,对于一些搜索功能很差甚至没有搜索功能的网站,这个需求约等于抓取整个网站的内容。所以你需要知道以怎样的方式才能找齐“整站所有内容”,上面 @imn1 的回复才是针对需求了解的比较清楚的。楼主不给具体的网站,说很简单很容易有点太武断了。
falcon05
2020-06-13 15:55:15 +08:00
@tlday 内容格式只是一个小方面,没有说 rss 是必需的啊,楼主是只看首页的更新文章,有 RSS 就弄个 RSS/xml 解析器,有 json 接口的就解析 json,即便都没有只有 html,就找个 html 解析器,也不是很大的问题,beautifulsoup 的教程烂大街。我并没有说正则,因为楼主说自己是小白。
xiaozizayang
2020-06-13 16:46:50 +08:00
到宣传自己开源项目的时候了🐒: https://github.com/howie6879/ruia

说正事,楼主花个几百块让大学生写事情就搞定了~~
hbolive
2020-06-13 16:50:44 +08:00
感觉就是个定制版的百度搜索,输入关键字,然后设置些条件(比如我设置不显示 csdn 的),符合的就显示。。
myCupOfTea
2020-06-13 16:51:37 +08:00
用 scrapy 太简单了,几行代码就完事了
xingshu1990
2020-06-13 17:12:22 +08:00
@myCupOfTea scrapy 的学习成本 比我在 5 楼里说的还高,scrapy 的安装就比较困难,更别说后面的启动命令。
leihongjiang
2020-06-13 17:35:19 +08:00
我怎么感觉应该不难啊 估计我没把我的要求表达清楚
页面 1-10 每个页面设置 单独的 xpath 定位 获得 title 和 rul 的值
然后 10 个页面爬取到的数据 按照时间倒序显示 显示爬取的时间
然后设定多久爬取的时间 然后输入到某个地方

例如:网站 A 更新了新的文章 然后我就可以看到 B 更新了文章 我可以看到.
lithbitren
2020-06-13 18:04:29 +08:00
对于入门来说,这种一般都坑在数据持久化吧,爬虫部分一般几行就能解决,html 看不懂都可以
hgjian
2020-06-13 18:13:50 +08:00
nodejs+puppeteer
Cy086
2020-06-13 19:07:15 +08:00
@myCupOfTea 如果有反爬呢
Cy086
2020-06-13 19:09:15 +08:00
不如发一个网址出来, 大家瞅瞅好不好爬, 是否有反爬措施再给你推荐思路
winnerczwx
2020-06-13 19:32:01 +08:00
@xingshu1990 感觉你用错方法了,scrapy 安装不是一句 pip 就行了吗?熟悉框架后新建一个项目也就 5 分钟左右全部配置好,可以开始写业务了。启动爬虫也就是一句代码的事。至于学习成本,我感觉它的文档做的还不错,比较齐全
icegaze
2020-06-13 20:11:58 +08:00
二十年前我用的是 telportpro
完全满足抓取网站网页的需求,,,^_^
leihongjiang
2020-06-13 20:51:29 +08:00
justin2018
2020-06-13 21:47:13 +08:00
http://www.locoy.com/ 火车头~ 快速 满足楼主需求 还不用学习 python
crella
2020-06-13 23:36:04 +08:00
我写的 ruby 脚本,数据以 data.json 存在文件夹里。
页面解析的大概流程:打开“开发人员工具”,切换到 Network 标签,选中 XHR,点击页面上的”加载更多“按钮,看到加载的请求如图: https://sm.ms/image/hGYR8yJce4WXL7a
多点几次,发现访问的页面形式是 https://www.aidiyu.com/wangzhan/page/页面序号(数字),选择其中一页进行分析。

接下来 xpath 的分析直接参考代码中的实现。先按 xpath:<article id="post-ID" ...>来选择项目,再分析每个项目的值。

代码: https://gitee.com/crella/codes/guori0c8dh9s6myz32b5n96

@leihongjiang

python 对应用 lxml 或者 beautifulsoup,写的 xpath 与 ruby 的 Nokogiri 的形式可能有不同。
crella
2020-06-13 23:39:42 +08:00
gitee 又抽风了?我设置代码的权限为”公开“的。
代码换个地址: https://gitee.com/crella/rubycode/blob/master/aidiyu.rb
myCupOfTea
2020-06-14 21:40:05 +08:00
@Cy086 scrapy 只支持中间件,加个代理就行了,反正确实挺简单的
myCupOfTea
2020-06-14 21:40:42 +08:00
@xingshu1990 scrapy 安装也难吗?直接用 conda 啊
myCupOfTea
2020-06-14 21:41:17 +08:00
@Cy086 多了个只

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX