python爬虫学习日志2

在日志1中,以及学习了信息的爬取:

# 得到指定一个URL的网页内容
def askURL(url):
	# 模拟浏览器头部信息
	head = {
		'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
	# Request封装,用户代理,伪装成浏览器
	request = urllib.request.Request(url, headers=head)
	html = ""
	try:
		response = urllib.request.urlopen(request)
		html = response.read().decode('utf-8')
	# print(html)
	except urllib.error.URLError as e:
		if hasattr(e, 'code'):
			print(e.code)
		if hasattr(e, 'reason'):
			print(e.reason)
	return html

现在学习处理爬取的信息:

首先要熟悉一下BeautifulSoup

from bs4 import BeautifulSoup
import urllib.request

headers = {
	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
}
data = bytes(urllib.parse.urlencode({"name": "eric"}), encoding="utf-8")
url = "http://www.douban.com"
req = urllib.request.Request(url=url, data=data, headers=headers, method="GET")
response = urllib.request.urlopen(req)
bs = BeautifulSoup(response, 'html.parser')
# Tag 拿到它所得到的第一个内容
print(bs.title)
# NavigableString 标签的内容(字符串)
print(bs.meta.attrs)
# BeatifulSoup 整个文档
print(bs)
# Comment 注释

然后了解了一下 bs.find_all() #功能非常的强大

# 正则表达式
t_list = bs.find_all(text=re.compile('\d'))   # 应用正则表达式查找包含特定文本的内容
for item in t_list:
	print(item)

# limit 参数学习,用来限定获取多少个
t_list = bs.find_all("a", limit=3)
for item in t_list:    
	print(item)
# css选择器
t_list1 = bs.select('a')  # 标签
t_list2 = bs.select('.hot-title')  # 类
t_list3 = bs.select('#u1')  # id
t_list4 = bs.select("a[class='lb']")  # 属性
t_list5 = bs.select("head > div")  # 通过子标签来查找
t_list6 = bs.select(".pf~ .lb")  # 表示 pf类别同一层次的类别lb
for item in t_list1:
	print(item)
print(t_list6[0].get_text())    # get_text()表示取文本

下一篇学习正则表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值