现在要进入网路爬虫的自学纪录了!!!
Such a long way
网路爬虫可以说是非常实用的功能
这篇文章会学习到
今天的自学资源是来自Coursera上台大资管系孔令杰老师开设的:
用 Python 做商管程序设计(三)(Programming for Business Computing in Python (3))
Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera
这堂课的内容是在第5周的C05网路爬虫
老师上课的语速非常刚好
内容也很容易上手
非常推荐对python有兴趣的人可以上去coursera上看老师的教学影片
对学习python的人来说会是很好上手并且内容丰富的一堂课
我们常见的网页通常是长这样
或是这样
爬虫就是去网页上把资讯爬取下来
网页上的这些资讯都是利用原始码包装过後所呈现出来的
以chrome为例
按右键就可以选取『检视原始码』,像是下图红色框框
网页的原始码如下图所示
这些网页的商品资讯经常会有变动
爬虫可以定时撷取并且更新资料
像是商品种类或是价格
爬虫也可以帮我们进行汇整与统计
像是要比较竞争者的商品价格
就可以利用爬虫这个功能
最基本的爬虫程序:
进阶的网路爬虫
针对多个网页进行爬取
传递资讯给网页(例如登入资讯)
操作网页(例如点选下一页)
像是要抢车票、演唱会的票,网页通常需要登入、输入资讯
一般的情况是需要我们手动输入
但是有了爬虫之後就可以预先设定好要输入的内容、想要的座位
在需要和时间竞赛的情况下
电脑会跑得比人快
使用爬虫会替我们省下不少麻烦
HTML是一种程序语言
准确来说是一种标记语言
利用不同的标记产生美观且具有互动性的网页
虽然现在有不少网页都不是用纯HTML写的,但是大多数都仍然遵循HTML架构
绝大多数的浏览器取得HTML档案之後
会解析其中的标签,并将解析後的网页呈现出来
接下来来看简单的网页原始码
HTML的排列大致上是树状的
有开头跟结尾
上述范例有分成两部分:
现在来看看Body里的文字分别有何意思
<body bgcolor........>
:这行代表的是网页的背景要选用什麽颜色<h3> Hi!!!</h3>
:表示的是header等级三,里面包的是要用的文字<ul> ......<ul>
: 则是清单的意思<li> .....</li>
: 这里的li是list item的意思buttom
:则会产生按钮可以看出HTML语法有一定的排列规则
爬虫主要是看我们想要的资讯储存在某个标签里面
右上角红色框框是在网页上显示出来的样子
而下方的蓝色框框则是他的原始码
Python有非常多跟爬虫相关的library
这里会使用到的是
现在来练习取得网页的HTML原始码
假如现在想要取得博客来上跟python有关的书籍
首先使用requests.get()
取得网页HTML的原始码
import requests
url = "https://search.books.com.tw/search/query/cat/all/sort/9/v/0/page/1/spell/3/ms2/ms2_1/key/python"
r = requests.get(url) #r是requests.get()回传的物件
print(r.ststus_code) #200代表ok
if r.status_code == requests.codes.ok:
print("OK!")
r是requests.get()回传的物件
r.status_code 纪录这个HTTP request的结果代码
requests.codes.ok就是200
若是想查看原始码,可以使用r.text
print(r.text)
可以看到输出的是复杂的原始码
代表已经把网页的资讯撷取下来了!
接下来就可以使用beautifulsoup函式库来协助我们解读
<<: Day27. 虽然今年是2021,但我们要做2048(1)
>>: Day 27 PostgreSQL 慢查询提速 50+ 倍?
*** 模组资料夹 payment_sinopac 以 "/" 来代表此资料夹 ...
今天讲解的是 CAP 定理 DAY05_CAP定理 ...
Outline Characters C strings C string processing f...
首先看一下原生的技能介面是怎麽生成的 游戏介面分成场景(Scene)跟视窗(Window) 透过在S...
Hook 是 React 16.8 中增加的新功能, 补足了早期 Function Componen...