Python爬虫学习
一、准备工作
主要需要使用python的两个库:requsts和BeautifulSoup。
**urllib.request:**这是Python自带的库,不需要单独安装,它的作用是为我们打开url获取html的内容。Python官方文档的介绍:The urllib.request module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.
**BeautifulSoup:**是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。安装比较简单:
$pip install beautifulsoup4
验证的方法,进入Python直接import一下,如果没有异常,那就说明安装成功了!
二、Helloworld
接下来,我们就用urllib.request获取html内容,再用BeautifulSoup提取其中的数据,完成一次简单的爬取。
**注:**以下方法仅可针对静态数据,动态数据的获取下一节学习
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen('https://gsnews.swjtu.edu.cn/') #打开url,获取html
print(html.read) #打印html内容
html.close() #关闭html文件
运行后得到
说明成功打开了这个网站,但是这并不能获取到任何信息,如何方便的找到我们想抓取数据呢?用Chrome打开url,然后按F12,再按Ctrl + Shift + C。如果我们要抓导航栏,就用鼠标点击任意一个导航栏的项目,浏览器就在html中找到了它的位置。效果如下:
定位到的html代码:
有了这些信息,就可以用BeautifulSoup提取数据了。升级一下代码:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen('https://music.163.com/#/discover/playlist') # 打开url,并获取html内容
# 把html内容传入BeautifulSoup对象
bs4_obj = BeautifulSoup(html.read(), 'html.parser')
# 找到所有class = “fst”的li标签
text_list = bs4_obj.findAll("li", "fst")
for text in text_list:
print(text.get_text()) # 打印标签文本
html.close() # 关闭html文件
运行后输出:
就成功获取到想要的数据了。