015-我的第一个Python爬虫(豆瓣电影)

    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)

猜你喜欢

转载自blog.csdn.net/qq_31698195/article/details/89378294