干货教程:一篇文章教会你利用Python网络爬虫实现豆瓣电影采集

优采云 发布时间: 2022-11-15 16:59

  干货教程:一篇文章教会你利用Python网络爬虫实现豆瓣电影采集

  点击上方“IT共享之家”关注

  回复“资讯”领取Python学习福利

  【1. 项目背景】

  豆瓣电影提供最新的电影介绍和评论,包括电影信息查询和已上映电影的购票服务。可以录制自己想看的电影电视剧,边看边看,顺便打分写影评。极大地方便了人们的生活。

  今天以电视剧(美剧)为例,批量抓取对应的电影,写入csv文件。用户可以通过评分更好地选择自己想要的电影。

  【2. 项目目标】

  获取对应的电影名称、评分、详情链接,下载电影图片,保存文件。

  [3. 涉及的图书馆和网站]

  1、网址如下:

  https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start={}

  2.涉及的库:requests、fake_useragent、json、csv

  3.软件:PyCharm

  【4. 项目分析】

  1、如何请求多个网页?

  当点击下一页时,paged会每多一页自动增加20,将转换后的变量替换为{},然后使用for循环遍历URL,实现多URL请求。

  2、如何获取真实请求的地址?

  请求数据时,发现页面上没有对应的数据。其实豆瓣是用javascript动态加载内容来防止采集的。

  1)F12右键查看,找到Network,左侧菜单Name,找到第五条数据,点击Preview。

  2)点击subjects,可以看到title就是对应的电影名。rate是对应的分数。通过js解析subjects字典,找到需要的字段。

  

  3、如何访问网站?

  https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start=0<br />https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start=20<br />https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start=40<br />https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start=60

  当点击下一页时,页面每增加一页自动增加20,将转换后的变量替换为{},然后使用for循环遍历URL,实现多次URL请求。

  【V. 项目实施】

  1、我们定义一个class类继承object,然后定义init方法继承self,再定义一个main函数main继承self。导入所需的库和请求 url。

  import requests,jsonfrom fake_useragent import UserAgentimport csv<br />class Doban(object): def __init__(self): self.url = "https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start={}"<br /> def main(self): pass<br />if __name__ == '__main__': Siper = Doban() Siper.main()

  2、随机生成UserAgent并构造请求头,防止反爬。

   for i in range(1, 50): self.headers = { 'User-Agent': ua.random, }

  3.发送请求,得到响应,回调页面,方便下一次请求。

   def get_page(self, url): res = requests.get(url=url, headers=self.headers) html = res.content.decode("utf-8") return html

  4. JSON解析页面数据,得到对应的字典。

   data = json.loads(html)['subjects'] # print(data[0])

  5. 遍历获取对应的电影名、评分、下一个详情页的链接。

   print(name, goblin_herf) html2 = self.get_page(goblin_herf) # 第二个发生请求 parse_html2 = etree.HTML(html2) r = parse_html2.xpath('//div[@class="entry"]/p/text()')

  6、创建一个csv文件用于写入,定义相应的header内容,保存数据。

   # 创建csv文件进行写入 csv_file = open('scr.csv', 'a', encoding='gbk') csv_writer = csv.writer(csv_file) # 写入csv标题头内容 csv_writerr.writerow(['电影', '评分', "详情页"]) #写入数据 csv_writer.writerow([id, rate, urll])

  7.请求图片地址。定义图片名称并保存文档。

   html2 = requests.get(url=urll, headers=self.headers).content dirname = "./图/" + id + ".jpg" with open(dirname, 'wb') as f: f.write(html2) print("%s 【下载成功!!!!】" % id)

  8.调用方法实现功能。

   html = self.get_page(url) self.parse_page(html)

  

  9. 项目优化: 1) 设置延时。

   time.sleep(1.4)

  2)定义一个变量u,用于遍历,表示爬取哪个页面。(明显更清楚)。

   u = 0 self.u += 1;

  【6. 效果展示】

  1、点击绿色小三角运行输入起始页和结束页(从第0页开始)。

  2. 在控制台显示下载成功信息。

  3. 保存 csv 文件。

  4.电影画面显示。

  【七. 概括】

  1、不建议抓取太多数据,容易造成服务器负载,稍微尝试一下。

  2、本次文章针对Python爬豆瓣在应用中的难点和重点,以及如何防止反爬做了相对的解决。

  3、希望通过这个项目,能够帮助理解json解析页面的基本过程,字符串是如何拼接的,format函数是如何使用的。

  4、本文基于Python网络爬虫,使用爬虫库获取豆瓣电影及其图片。到实现的时候,总会遇到各种各样的问题。不要好高骛远,踏踏实实去努力,这样才能理解的更深刻。

  5、需要本文源码的朋友,请在下方公众号后台回复“豆瓣电影”获取。

  看完这篇文章你有收获吗?请转发分享给更多的人

  资讯科技共享屋

  干货教程:站群自动采集源码

  站群自动采集源代码_站群网站系统源代码

  智能生成千站,覆盖全国。独特的排版系统让每个分站保持独立的网站规则,拒绝千篇一律和无用的分站,站群最大化排名。双语模板一键切换 中英文双语模板一键切换,满足更多外贸客户需求,吸引更多客户。. ,通过操作多个网站相互链接,站群自动采集源代码,站群是SEO优化的重要手段网站,从而达到更好的排名效果。如果构建站群网站,站群自动采集源代码,非常方便省事,还能节省大量构建成本。

  

  站群网站系统source_area站群source

  铜川有这样一群年轻人:他们曾经在耀州区永安广场组织过50架无人机编队的灯光秀;走进铜川市各中小学,为学生普及机器人知识;. ,站群网站系统源码,让我们拥有国内最快的访问速度,支持大陆优化路由,这也是海外多IP服务器流行的主要原因。3、网络发达,访问速度快,但现在美国的站群服务器大多支持CN2直连线路,站群网站系统源码,延迟低虽然我们知道美国离中国大陆还有很远的距离

  Region站群source_reverse proxy站群source

  

  生存一定是艰难的,一定是可读的。3、美国的站群服务器不需要注册。第2点,网站必须注册后才能在线访问。4.美国,前面我们已经提到美国是我国的特别行政区之一。作为我国的一个特别行政区,它的优势之一是:网站无需备案即可存储在美国服务器上。如果放在国内大陆的服务器上,如果泛目录站群程序的效果持续下降,在这个竞争日益激烈的互联网环境下,本程序需要不断升级软件,完善内容。质量。除了注重质量,站群区源码,

  反向代理站群源码_小旋风站群源码

  建议两种操作方法都一样使用!其次,导入预先准备好的关键词文本(inc/key/)和文章内容文本(inc/content/),文件名可以随意命名,反向代理站群源代码,直接上传到服务器解压,这里可以直接用网站根目录做,反向代理站群源码,先下载源码压缩包,也可以做在目录中,目录搜索引擎虽然有搜索功能,但严格来说并不是真正的搜索引擎,只是网站链接的编目列表。用户完全可以根据类别找到自己需要的信息。由于加入了人类智能,这类搜索引擎信息准确,导航质量高。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线