因为自己需要浏览很多的页面,工作量太大,也找不到合适类似的软件. 所以自己想写两个爬虫
1:根据需要的网站 爬取到标题和 url 根据自己的需求浏览 2:设置关键词 搜索 全部抓取数据 然后设置爬虫判断是否展示
如果 Python 小白 开始学习的话.需要多长的时间可以.
1
crella 2020-06-13 10:35:21 +08:00 via Android
先把要爬的页面和需求发出来
|
2
TimePPT 2020-06-13 10:48:44 +08:00 via Android
如果需求简单,小白就别爬虫了,chrome 就有采集插件
|
3
wangfj2333 2020-06-13 10:55:50 +08:00 via Android
我用八爪鱼就没成功过。。
|
4
tomczhen 2020-06-13 10:56:52 +08:00 via Android
1. “根据自己的需求浏览” ,所以需求是什么?
2. “全部抓取数据”,所以全部是怎么定义? |
5
xingshu1990 2020-06-13 10:57:55 +08:00
学习路线,requests (包括 get 以及 post,知道 header 哪些参数放脚本里能让爬虫爬到数据就好)
如果目标网站没有数据加密措施,页面内容匹配需要学 re 或者 BS4 或者 XPATH 或者 lxml 。 另外还有数据保存,比如保存 txt mysql excel 等。 |
6
somalia 2020-06-13 10:58:56 +08:00
火车头怎么样
|
7
lilydjwg 2020-06-13 11:04:34 +08:00
看起来需求是浏览网页时做辅助。那么,浏览器扩展它不香么?
|
8
leihongjiang OP @tomczhen 我需要看这篇文章 然后打开链接就可以了.
全部抓取 就是抓取 搜索到的所有页面 然后设置判断 |
9
imn1 2020-06-13 11:20:40 +08:00 1
我知道这种需求,以前有考虑过,放弃
实际上就是针对没有 sitemap 、没有站内搜索,或者这两方面做得不好的站点,自己按需导航 例如 V2EX 的节点 sitemap 还过得去,但站内搜索就…… 放弃原因并不是难写,而是耗费储存空间、耗时,一个工作要么空间换时间、要么时间换空间,两者都耗费就不值得做 而且这样爬不仅仅是一两天的事,是个常态,这样就极可能被网站 ban,得不偿失 建议善用 Ctrl-F 或者写页内脚本,把不想看的内容 display:none,或者 highlight 想看的内容 |
10
dsg001 2020-06-13 11:25:12 +08:00
html,css,xpath,正则,如果这些都熟,专心学下 python 一个月差不多了
|
11
leihongjiang OP @lilydjwg 有可以聚合的吗.
|
12
leihongjiang OP @imn1 如果有成品的采集 不是更方便吗
|
13
leihongjiang OP @TimePPT 给推荐下
|
14
leihongjiang OP @wangfj2333 八爪鱼能抓取 跳转后的链接吗
|
15
leihongjiang OP @somalia 火车头需要单击点开 某个任务 才能查看到数据
|
16
leihongjiang OP @dsg001 如果我只抓取 10 个网站的 首页更新的文章 有什么好的办法吗.毕竟一个月太长了
|
17
lilydjwg 2020-06-13 11:36:31 +08:00
@leihongjiang #11 我的意思是你自己按你的需求写。
|
18
dsg001 2020-06-13 12:48:26 +08:00
@leihongjiang 外包?或者把需求写清楚,偶尔有大手子顺手就写了
|
19
falcon05 2020-06-13 12:56:05 +08:00 via iPhone
挺简单,小白也很容易,一周应该能搞搞定了吧,就模拟请求,读写文件,字符串处理,如果有 RSS feed,就更简单了。
|
20
Junn 2020-06-13 13:27:42 +08:00
PY 爬虫的实例教程看一两个,然后 PY 基本语法什么教程看一遍,1 ~ 2 天吧
看 HTML 、CSS 、正则等等相关教程,1 天吧 参考教程、文档、根据自己需求开始干,1 ~ 2 天吧 总体努力的话 1 周可以了~ |
21
tlday 2020-06-13 14:22:00 +08:00
|
22
falcon05 2020-06-13 15:55:15 +08:00 via iPhone
@tlday 内容格式只是一个小方面,没有说 rss 是必需的啊,楼主是只看首页的更新文章,有 RSS 就弄个 RSS/xml 解析器,有 json 接口的就解析 json,即便都没有只有 html,就找个 html 解析器,也不是很大的问题,beautifulsoup 的教程烂大街。我并没有说正则,因为楼主说自己是小白。
|
23
xiaozizayang 2020-06-13 16:46:50 +08:00
|
24
hbolive 2020-06-13 16:50:44 +08:00
感觉就是个定制版的百度搜索,输入关键字,然后设置些条件(比如我设置不显示 csdn 的),符合的就显示。。
|
25
myCupOfTea 2020-06-13 16:51:37 +08:00
用 scrapy 太简单了,几行代码就完事了
|
26
xingshu1990 2020-06-13 17:12:22 +08:00
@myCupOfTea scrapy 的学习成本 比我在 5 楼里说的还高,scrapy 的安装就比较困难,更别说后面的启动命令。
|
27
leihongjiang OP 我怎么感觉应该不难啊 估计我没把我的要求表达清楚
页面 1-10 每个页面设置 单独的 xpath 定位 获得 title 和 rul 的值 然后 10 个页面爬取到的数据 按照时间倒序显示 显示爬取的时间 然后设定多久爬取的时间 然后输入到某个地方 例如:网站 A 更新了新的文章 然后我就可以看到 B 更新了文章 我可以看到. |
28
lithbitren 2020-06-13 18:04:29 +08:00
对于入门来说,这种一般都坑在数据持久化吧,爬虫部分一般几行就能解决,html 看不懂都可以
|
29
hgjian 2020-06-13 18:13:50 +08:00 via Android
nodejs+puppeteer
|
30
Cy086 2020-06-13 19:07:15 +08:00
@myCupOfTea 如果有反爬呢
|
31
Cy086 2020-06-13 19:09:15 +08:00
不如发一个网址出来, 大家瞅瞅好不好爬, 是否有反爬措施再给你推荐思路
|
32
winnerczwx 2020-06-13 19:32:01 +08:00 via iPhone
@xingshu1990 感觉你用错方法了,scrapy 安装不是一句 pip 就行了吗?熟悉框架后新建一个项目也就 5 分钟左右全部配置好,可以开始写业务了。启动爬虫也就是一句代码的事。至于学习成本,我感觉它的文档做的还不错,比较齐全
|
33
icegaze 2020-06-13 20:11:58 +08:00 via Android
二十年前我用的是 telportpro
完全满足抓取网站网页的需求,,,^_^ |
34
leihongjiang OP |
35
justin2018 2020-06-13 21:47:13 +08:00
http://www.locoy.com/ 火车头~ 快速 满足楼主需求 还不用学习 python
|
36
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 的形式可能有不同。 |
37
crella 2020-06-13 23:39:42 +08:00
gitee 又抽风了?我设置代码的权限为”公开“的。
代码换个地址: https://gitee.com/crella/rubycode/blob/master/aidiyu.rb 。 |
38
myCupOfTea 2020-06-14 21:40:05 +08:00
@Cy086 scrapy 只支持中间件,加个代理就行了,反正确实挺简单的
|
39
myCupOfTea 2020-06-14 21:40:42 +08:00
@xingshu1990 scrapy 安装也难吗?直接用 conda 啊
|
40
myCupOfTea 2020-06-14 21:41:17 +08:00
@Cy086 多了个只
|
41
myCupOfTea 2020-06-14 21:42:05 +08:00
@xingshu1990 主要 scrapy 还有个 shell,可以很方便新手测试
|
42
xingshu1990 2020-06-15 09:06:10 +08:00
@myCupOfTea 楼主要是会看文档就能上手 scrapy,就不会过来问问题了。
如果不考虑 linux 还是 windown,当然是 anaconda 就好了,如果是 windown,还要看是 7 还是 10 以及里面的关联库的版本,windown 经常是不能正确安装 pypiwin32 或者 ssl 版本有问题,或者是 lxml 安装报错之类的问题,对于初学者来说学习成本会很大。 |
43
myCupOfTea 2020-06-15 10:02:05 +08:00
@xingshu1990 俺有次没用 anaconda,自己安装确实坑特别多,搞了半天最后说我 openssl 有问题
|