用python3爬取百度首页
程序员文章站
2022-07-12 22:13:45
...
用python3读取百度首页
代码
- 爬取百度首页
import urllib.request
import urllib
url="http://www.baidu.com/"
html=urllib.request.urlopen(url)
content=html.read().decode('utf-8')
#html_text=bytes.decode(html.read())
#print(html_text)
print(content)
- 读取百度首页中的标题
在控制台输入pip install bs4
安装BeautifulSoup
from urllib.request import urlopen
from bs4 import BeautifulSoup as bf
html=urlopen("http://www.baidu.com/")
obj=bf(html.read(),'html.parser')
print(obj.head.title)
- 提取百度logo
- 获取所有图片信息
from urllib.request import urlopen
from bs4 import BeautifulSoup as bf
html = urlopen("http://www.baidu.com/")
obj = bf(html.read(),'html.parser')
title=obj.head.title
pic_info = obj.find_all('img')
#分别打印每个图片的信息
for i in pic_info:
print(i)
运行完得到所有图片的信息结果,包含了所有图片的属性
- 获取logo图片的链接地址
from urllib.request import urlopen
from bs4 import BeautifulSoup as bf
html = urlopen("http://www.baidu.com/")
obj = bf(html.read(),'html.parser')
title=obj.head.title
pic_info = obj.find_all('img')
logo_pic_info=obj.find_all('img',class_="index-logo-src")
logo_url="http:"+logo_pic_info[0]['src']
print(logo_url)
得到的logo地址如下所示
- 根据链接地址下载logo文件
from urllib.request import urlopen
from bs4 import BeautifulSoup as bf
from urllib.request import urlretrieve
html = urlopen("http://www.baidu.com/")
obj = bf(html.read(),'html.parser')
title=obj.head.title
pic_info = obj.find_all('img')
logo_pic_info=obj.find_all('img',class_="index-logo-src")
logo_url="http:"+logo_pic_info[0]['src']
urlretrieve(logo_url,'logo.png')
成功获取logo图片,命名为logo.png
神奇地发现,百度的logo已经因为疫情做了改造,致敬所有的一线工作人员。
总结
本文列举了应用python3爬取百度首页、读取网页标题、提取网页logo的三段代码,其中用到的函数有:
- 采用
urllib
中的request.urlopen
读取网页内容 - 用
bytes.decode
可以将网页内容转换为字节 - 采用
bs4
将网页内容结构化,方便读取 -
BeautifulSoup
中的find_all
方法可以提取包含在图片标签里的信息。 -
urllib
中的request.urlretrieve
用于下载链接内容并保存
参考资料
1. 有哪些足不出户,能用十天左右时间掌握的新技能? - 朱*的回答 - 知乎
2. 【python爬虫】 之 爬取百度首页