python爬取网页内容_Python实战篇:开启“数据挖掘”——有道爬

上一篇和伙伴们分享Python爬虫的定义、背景和发展模式等内容,今天和伙伴分享下Python爬虫的实战源代码,希望伙伴可以在数据爬取中用到。

‍♂️我们再看一下爬虫的工作原理:

python爬取网页内容_Python实战篇:开启“数据挖掘”——有道爬_第1张图片

[斜眼R]爬虫包括以下三个步骤:

1、确定需要爬取网页的URL地址

2、通过HTTP/HTTPS协议获取相应的HTML页面

3、提取HTML页面有用的数据

展示这一过程如下:

python爬取网页内容_Python实战篇:开启“数据挖掘”——有道爬_第2张图片

进行完以上三步,对获取的HTML页面数据进行解析,保存所需的数据,当页面有其他的URL时,继续第二步,直到提取完成。

以下通过代码说明爬虫过程:

通过import语句调入需要的爬虫模块和解析模块

import urllib.request

import urllib.parse

import json

从有道翻译爬取翻译数据,采用POST模式,以字典方式传入请求信息

# 请输入你要翻译的内容

key = input("请输入要翻译的内容:")

# 把提交的form表单数据转为bytes数据类型

data = {"i": key,

"from":"AUTO",

"to":"AUTO",

"smartresult":"dict",

"client":"fanyideskweb",

"salt":"1540373170893",

"sign":"a5d9b838efd03c9b383dc1dccb742038",

"doctype":"json",

"version":"2.1",

"keyfrom":"fanyi.web",

"action":"FY_BY_REALTIME",

"typoResult":"false"

}

# 字符串i=python&from=auto....

data =urllib.parse.urlencode(data)

data =bytes(data,"utf-8")

# 发请求,获取响应

# url为POST的地址,抓包工具抓到的,此处去掉 _o

url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

headers ={"User-Agent":"Mozilla/5.0"}

# 此处data为form表单数据,为bytes数据类型

req =urllib.request.Request(url,data=data,headers=headers)

res = urllib.request.urlopen(req)

html = res.read().decode("utf-8")

将提取的HTML数据进行解析,提取,最后得到了我

# 把json格式字符串转换为Python中字典

r_dict = json.loads(html)

#print(r_dict)

print(r_dict['translateResult'][0][0]['tgt'])

请输入要翻译的内容:量化交易

Quantitative trading

key = input("请输入要翻译的内容:")

这条语句的key保存了我们输入的翻译单词“量化交易”,然后在data字典中提交给服务器,反馈回HTML语句中通过JSON模块提取出翻译结果。

‍♂️ ‍♂️本篇留下一个练习:

仿照以上代码原理完成以下数据爬取:

百度贴吧数据抓取

(提示在文章最后,具体代码可留言咨询)

‍♂️要求:

1、输入要抓取的贴吧名称

2、输入爬取的起始页和终止页

3、把每一页的内容保存到本地

第1页.html

第2页.html ... ...

步骤提示:

1、找URL规律,拼接URL

第1页:http://tieba.baidu.com/f?kw=??&pn=0

第2页:http://tieba.baidu.com/f?kw=??&pn=50

第3页:http://tieba.baidu.com/f?kw=??&pn=100

.....

第n页:pn=(n-1)*50

2、获取网页内容(发请求获响应)

3、保存(本地文件、数据库)

学习建议不要着急,探索出适合自己的学习方法,按部就班,不要浪费自己珍贵的时间成本最最珍贵的学习精力。

欢迎大家留言交流学习心得,如有需要我的学习资料可以留言获取!

你可能感兴趣的:(python爬取网页内容)