今天尝试使用pycharm+beautifulsoup进行爬虫测试。我理解的主要分成了自己写的HTML和百度上的网页两种吧。第一种,读自己写的网页(直接上代码):
(主要参考博客:https://blog.csdn.net/Ka_Ka314/article/details/80999803)
from bs4 import BeautifulSoup
file = open('aa.html', 'rb')
html = file.read()
bs = BeautifulSoup(html,"html.parser")
# 缩进格式
print(bs.prettify())
# 获取title标签的所有内容
print(bs.title)
# 获取title标签的名称
print(bs.title.name)
# 获取title标签的文本内容
print(bs.title.string)
# 获取head标签的所有内容
print(bs.head)
# 获取第一个div标签中的所有内容
print(bs.div)
# 获取第一个div标签的id的值
print(bs.div["id"])
# 获取第一个a标签中的所有内容
print(bs.a)
# 获取所有的a标签中的所有内容
print(bs.find_all("a"))
# 获取id="u1"
print(bs.find(id="u1"))
# 获取所有的a标签,并遍历打印a标签中的href的值
for item in bs.find_all("a"):
print(item.get("href"))
# 获取所有的a标签,并遍历打印a标签的文本值
for item in bs.find_all("a"):
print(item.get_text())
HTML代码:
<!DOCTYPE html>
<!--STATUS OK-->
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="content-type"/>
<meta content="IE=Edge" http-equiv="X-UA-Compatible"/>
<meta content="always" name="referrer"/>
<link href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css" rel="stylesheet" type="text/css"/>
<title>
百度一下,你就知道
</title>
</head>
<body link="#0000cc">
<div id="wrapper">
<div id="head">
<div class="head_wrapper">
<div id="u1">
<a class="mnav" href="http://news.baidu.com" name="tj_trnews">
新闻
</a>
<a class="mnav" href="https://www.hao123.com" name="tj_trhao123">
hao123
</a>
<a class="mnav" href="http://map.baidu.com" name="tj_trmap">
地图
</a>
<a class="mnav" href="http://v.baidu.com" name="tj_trvideo">
视频
</a>
<a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">
贴吧
</a>
<a class="bri" href="//www.baidu.com/more/" name="tj_briicon" style="display: block;">
更多产品
</a>
</div>
</div>
</div>
</div>
</body>
</html>
项目目录:
第二种是爬取在线网页内容,使用URL解析,这里我使用时出现了问题,就是URLopen。因为没有找到python27和python36区别,所以这里直接上结果(我用的python36),下载urllib.request的包。网上个别教程直接使用urllib,这里我把urllib3、5进行了下载,会报一个错误,显示连接网页超时。下下载这个urllib没问题