Python爬虫,是大家在Python学习之路上怎么都绕不过的一个坑,今天有机会模仿一个博主的博客,https://blog.csdn.net/qq_32740675/article/details/79720367,写一个Python爬虫,代码可以直接执行。
- 首先需要一个优秀的HTML解析库,现在比较流行的是【BeautifulSoup】,可以直接导入;
from bs4 import BeautifulSoup
有了这个解析库,我们在爬虫的时候不需要顾虑编码问题
- 然后需要加载一个HTML解析器和XML解析器,也可以直接导入;
from lxml import html
import xml
有了解析器,则可配合上面的解析库一起使用,对网站的内容进行解析
- 最后加载一个http库,对网站的网址或者说域名进行打开成网页,可直接导入;
import requests
- 第一步,现在开始找到你想要爬取的网站名称
address = "https://movie.douban.com/chart"
- 第二步,得知网站名称之后,可以直接通过最后加载的http库,对这个网站名称进行一顿操作,以此来获得网站的内容而不是网站的名称;
web_content = requests.get(address)
- 第三步,获取网站的内容之后,还要通过解析器+解析库将内容解析过,这一步的目的是将网站的内容变成我们可以操作的内容,理解起来可以认为是通过解析库使得网站的内容结构化了,至于怎么结构化,可以自行查询,这里直接由解析库完成;
- 注意有四种解析方式:
(1)‘html.parser’解析 速度适中,容错能力强
(2)’lxml’解析 速度快,容错能力强
(3)’xml’解析 速度快,唯一支持xml的解析器
(4)’html5lib’解析 速度慢点,最好的容错性
content_soup = BeautifulSoup(web_content.content,"lxml")
- 第四步,通过标签获取刚才已经解析好的内容,这里如果有前端基础的同学,可以直接一顿操作,不过我们这里只操作一波豆瓣电影的名称即可,有其他需求可自行继续操作。
for i in content_soup.find_all("div",class_="pl2"):
array = i.find_all("span")
print(array[0].string)
最后上全部代码:
# 优秀的HTML解析库,做爬虫不考虑编码
from bs4 import BeautifulSoup
# 加载一个html解析器
from lxml import html
# 加载一个xml解析器
import xml
# 加载一个http库
import requests
# 打开你要爬取的网站
address = "https://movie.douban.com/chart"
# 从这个网站,通过http库获取网站的html内容
web_content = requests.get(address)
# 使用解析器+解析库解析内容
content_soup = BeautifulSoup(web_content.content, "lxml")
# decode()是以规定的编码格式解码字符串,比如utf-8
# print(web_content.content.decode())
# 通过标签取所需要的内容
for i in content_soup.find_all("div", class_="pl2"):
array = i.find_all("span")
print(array[0].string)