Python爬虫|使用urllib库爬取百度新闻首页的标题信息

2020-09-01  本文已影响0人  ShowMeCoding

1 urllib爬虫库介绍

2 实例演示

案例:爬取百度新闻⾸⻚的新闻标题信息,url地址:http://news.baidu.com/

具体实现步骤
1.导⼊urlib库和re正则
2.使⽤urllib.request.Request()创建request请求对象
3.使⽤urllib.request.urlopen执⾏信息爬取,并返回Response对象
4.使⽤read()读取信息,使⽤decode()执⾏解码
5.使⽤re正则解析结果
6.遍历输出结果信息

2.1代码实现

'''
案例:爬取百度新闻首页的新闻标题信息
url地址:http://news.baidu.com/
'''

# 1 导入库
from urllib import request
import re

# 2 准备url地址,创建请求对象
url = 'http://news.baidu.com/'
req = request.Request(url)

# 3 发送请求获取response
res = request.urlopen(req)

# 4 解析结果:从响应对象中读取信息并解码
html = res.read().decode('utf-8')
# print(html)
pat = '<a href="(.*?)" mon=".*?" target="_blank">(.*?)</a>'
dlist = re.findall(pat,html)
print(dlist)

# 5 存储/输出结果
for v in dlist:
    if v[1] != '#{title}':
        print(v[1]+":"+v[0])

2.2 利用正则表达式进行结果解析

正则表达式官方参考文档:https://docs.python.org/zh-cn/3/library/re.html

# 1 导入库
from urllib import request
import re

# 2 准备url地址,创建请求对象
url = 'http://news.baidu.com/'
req = request.Request(url)

# 3 发送请求获取response
res = request.urlopen(req)

# 4 解析结果:从响应对象中读取信息并解码
html = res.read().decode('utf-8')
print(html)
<li class="bold-item"><a href="http://baijiahao.baidu.com/s?id=1676551984169544562" target="_blank" mon="a=9">5G还没用上,4G却越来越慢了?</a></li>
<li><a href="http://baijiahao.baidu.com/s?id=1676519964597345236" target="_blank" mon="a=9">二线网约车集体反攻滴滴</a></li>
<li><a href="http://baijiahao.baidu.com/s?id=1676500046896479892" target="_blank" mon="a=9">微软三杰</a></li>
<li><a href="http://baijiahao.baidu.com/s?id=1676511390908527616" target="_blank" mon="a=9">京东方,落后者的宿命</a></li>
<li><a href="http://baijiahao.baidu.com/s?id=1676498875100894367" target="_blank" mon="a=9">为什么互联网公司纷纷收购电竞战队?</a></li>
pat = '<a href="(.*?)" mon=".*?" target="_blank">(.*?)</a>'

3 小结

⽹络爬⾍使⽤的技术--数据抓取

⽹络爬⾍使⽤的技术--数据解析

上一篇下一篇

猜你喜欢

热点阅读