来和伯衡君一起快速入门Python爬虫——Beautifulsoup篇(三)

已收录   阅读次数: 817
2021-02-0721:22:39 发表评论
摘要

前面的两篇文章,算是初步了解了Python爬虫,使用BeautifulSoup,具体可以参看下方的前情提要,而这次来演示一下一些网站无法通过之前的代码直接爬取,需要添加浏览器标识,且是一个特别高效的方法,这次以爬取豆瓣为例……

分享至:
来和伯衡君一起快速入门Python爬虫——Beautifulsoup篇(三)

开篇寄语

前面的两篇文章,算是初步了解了Python爬虫,使用BeautifulSoup,具体可以参看下方的前情提要,而这次来演示一下一些网站无法通过之前的代码直接爬取,需要添加浏览器标识,且是一个特别高效的方法,这次以爬取豆瓣为例。

前情提要

官方库指导文档

内容详情

这次咱们安装一个新的库,名字叫做fake_useragent,伪装浏览器身份,常用于爬虫,可以生成各种浏览器标识。

pip install fake_useragent

安装完成后,在创建的编辑器新文件中就可以引入了,开头先引入这三个库:

from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import requests

想爬取豆瓣电影的正在上映的电影,那么首先就需要确定这个区间在哪里,在编辑器输入以下代码进行查看:

from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import requests
ua = UserAgent()
url = "https://movie.douban.com"
headers = {"User-Agent":ua.random}#生成随机浏览器标识
req = requests.get(url,headers=headers)
soup = BeautifulSoup(req.text, "html.parser")
print(soup.prettify())

在调试中,可以发现上映的电影是在<li class="title"></li>这个标签内,只需要提取这个类中的文字即可。我们就可以这样写代码:

from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import requests
ua = UserAgent()
url = "https://movie.douban.com"
headers = {"User-Agent":ua.random}#生成随机浏览器标识
req = requests.get(url,headers=headers)
soup = BeautifulSoup(req.text, "html.parser")
for i in soup.select("li.title"):
    print(i.get_text())

就会得到所有上映的电影名称,但是会发现不太美观,那么可以替换文字中的回车键,只需要在结尾这样修改就可以了。

from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import requests
ua = UserAgent()
url = "https://movie.douban.com"
headers = {"User-Agent":ua.random}#生成随机浏览器标识
req = requests.get(url,headers=headers)
soup = BeautifulSoup(req.text, "html.parser")
for i in soup.select("li.title"):
    print(i.get_text().replace("\n",""))

效果如下图所示:

来和伯衡君一起快速入门Python爬虫——Beautifulsoup篇(三)

我们也就爬取到了正在上映的热门电影名称了。

完整列表如下:

吉祥如意
送你一朵小红...
蜂鸟计划
大红包
小伟
心灵奇旅
温泉屋的小老...
紧急救援
缉魂
拆弹专家2
移情高手
崖上的波妞
温暖的抱抱
许愿神龙
卸甲归来
武汉日夜
叱咤风云
神奇女侠19...
与我跳舞
指挥家
海底小纵队:...
幸运电梯
出手吧!女生...
疯狂原始人2...
棒!少年
没有过不去的...
隐形人
封口者
猎杀T34
魔法鼠乐园
天后小助理
哆啦A梦:大...
风来风去
爱遍全球
本命年
光语者
京北的我们
站直啰,别趴...
汪汪队立大功...
宝可梦:超梦...
话梦光影

当然,还可以举一反三,爬取每部电影更详细的资料,比如演员列表,年代等等之类的,这里就不做演示了,有兴趣的朋友可以试试。

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: