作者yeeche (yeech)
看板Python
标题[问题] 新手学python想抓网页资料
时间Thu Jul 25 23:01:44 2019
各位前辈好
小弟是python新手 程度应该很low
想请教一下用python抓网页的功能
http://ww2.money-link.com.tw/etf/Ranking2.html
我想抓取这个网页的资讯
目前有看网路自学基本的python 包含list dictionary等
我是看py4e 也是coursera里面那个Michigan python教学
也看网路学会panda还有简单的 beautiful soup
抓一些比较简单的网站资料
可是这个网站的资讯 好像是属於动态资料
原始网页资料并没有这些数据
上网看了一下 找到类似的教学也是 : beautiful soup
https://www.youtube.com/watch?v=FSH77vnOGqU&t=726s
但是可能对我来说有点太跳级了 实在很难懂
查了版上的资讯 好像还有selenium scrapy等等
想请教一下各位高手 以如果要抓这种网页
到底需要懂哪些工具比较好呢?
有哪些适合新手的教学网站会教关於抓取这种网站的?
可否给点指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.78.227.126 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1564066908.A.C90.html
1F:→ alvinlin: 刚好我最近也在研究类似的内容。我花了点时间看你的内容 07/25 23:40
2F:→ alvinlin: 。其实这个网页不太难。它已经在後端跑完了,前端只是HT 07/25 23:40
3F:→ alvinlin: ML而己。 07/25 23:40
4F:→ alvinlin: 首先你要去研究一下HTML的结构。然後如果还有时间,看一 07/25 23:43
5F:→ alvinlin: 下JavaScript。你的Ytb的那个连结只是和你说如果你的网 07/25 23:43
6F:→ alvinlin: 页前端有JavaScript在执行,你用来抓网页的内容会变得不 07/25 23:43
7F:→ alvinlin: 同,因为JS会改变网页呈现的内容。 07/25 23:43
8F:→ alvinlin: 总结就是,python把很多东西简化了,但如果你不了解它帮 07/25 23:47
9F:→ alvinlin: 你简化的东西,你还是得先花时间了解它才知道怎麽运用。 07/25 23:47
10F:→ alvinlin: 以你的例子,bs4,scrpy,它的背後还是HTML的结构,如果你 07/25 23:47
11F:→ alvinlin: 不了解DOM tree, HTML elements, Tags, nodes, 这些都值 07/25 23:47
12F:→ alvinlin: 得你很快的去看一下再回来爬虫这个题目。 07/25 23:47
13F:→ alvinlin: 我前阵子刚好在读jJavaScript,有些也看不太懂,所以去 07/25 23:50
14F:→ alvinlin: 翻了HTML的书,两相对照就看懂了。提供你参考。 07/25 23:50
15F:推 TitanEric: 推楼上用心回答~ 07/25 23:56
16F:→ vi000246: 看起来是用F1_10_ETFData.json来render页面的 07/26 01:41
17F:→ vi000246: 1.开F12看Network->XHR页签使用的api 07/26 01:42
18F:→ vi000246: 2.用js解析json里的资料 应该就能抓到你要的东西了 07/26 01:43
19F:推 yummy8765: 推1~n楼用心回答 07/26 06:51
20F:推 powyo: 不嫌速度慢的话用selenium最简单 07/26 09:23
21F:→ powyo: selenium 自动化操作只要搞懂里面的doom物件名称就好 07/26 09:24
22F:→ yeeche: 太感谢楼上所有大大的认真说明 07/26 09:48
23F:→ yeeche: 所以 听起来我要先搞懂的关键字 07/26 09:49
24F:推 powyo: 最简单用chrome 按F12看就好 07/26 09:50
25F:→ yeeche: 1. HTML 2. doom 3. javascript 然後再去看爬虫 对吗? 07/26 09:52
27F:→ powyo: chrome开起来 按F12 就能看到里面的元素 07/26 09:53
28F:→ powyo: 把你要抓的部分 看他是哪层元素包起来 07/26 09:54
29F:→ yeeche: 谢谢powyo大大 在请问一个丢脸的小问题 07/26 09:55
30F:→ powyo: 用selenium 可以指定抓取元素 07/26 09:55
31F:→ yeeche: 如果我看到我想要抓的数字 但是我却还是搞不懂该怎麽处理 07/26 09:55
32F:→ yeeche: 我除了看selenium之外 是不是要先去恶补其他knowledge? 07/26 09:56
33F:→ yeeche: 我的程度只到 如果数字是直接写在HTML上 我自己会抓了 07/26 09:57
34F:→ yeeche: 透过简单的抓取 还有string处理 只会降(程度真的低..) 07/26 09:57
35F:推 powyo: 不懂你的意思 你是要抓取全部的资料? 还是特定的 07/26 09:58
36F:→ yeeche: 我会先去看看能否看懂selenium 谢谢大家的回覆 07/26 09:59
37F:→ powyo: 看起来这网站会定时更新资料 所以抓到的也不是最新的 07/26 09:59
38F:→ yeeche: 也非常感谢 alvinlin vi000246 热情回应 07/26 10:00
39F:→ yeeche: 对 我要每隔一段时间抓取 like 5min酱子 07/26 10:01
40F:→ yeeche: 抓取那些数字的资料 就是我以为的动态资料 07/26 10:01
41F:→ yeeche: 我不用很即时 甚至15min抓一次 也很OK 07/26 10:02
42F:推 powyo: 那就用个timer去抓取就好啊 甚至用排程也可以 07/26 10:05
43F:→ yeeche: 对 我是打算用timer 07/26 10:08
44F:→ jwolf1211: 是打算写投资用的? 07/30 19:21