Python多线程爬取猫眼网站榜单TOP100,并存入CSV文件!

news/2024/5/10 3:45:11/文章来源:https://blog.csdn.net/qq_45058254/article/details/105011245

Python爬取猫眼网站榜单TOP100,并存入CSV文件!

1. 目标网址
看到榜单的时候网址是https://maoyan.com/board/4是这样的,通过下一页看到https://maoyan.com/board/4?offset=10,然后在下一页https://maoyan.com/board/4?offset=20,所以得到规律,其实首页也可以这样访问https://maoyan.com/board/4?offset=0
欧阳天虹
2. 请求网页,出现的问题
一定要记得带请求头,因为现在的网站反爬虫机制还是挺厉害的,必须模仿浏览器访问,针对一些网站访问的时候必须请求头,不要因为坏毛病不带请求头,在编写代码的时候我没带请求头只能访问到猫眼网站的详情页,害我找了半天的毛病的,并且控制台的打印的字符简直看不清楚,如下图。然后呢,还有一个问题,如果你用自己的浏览器的请求头的访问还是详情页,建议去找哈其他浏览器的请求头,这里我用的极速浏览器的请求头只能访问详情页,应该是浏览器的内核问题,换成谷歌,火狐浏览的请求头也就可以了。
在这里插入图片描述

3. 编写代码
这里我用的parsel库,这个库解析的网页支持xpath,css,re正则,提取网页元素,感觉这个库挺好用的,值得推荐。
在存储数据的时候,遇到一些问题想使用pandas的DataFarms来直接导出数据这样也就很方便了,但是我发现不能追加数据在同一张表上(应该是可以的,我对这个库不太熟悉),然后就用了下面的这个方法两次操作同一个CSV文件也达到了了预期的效果,就是感觉这办法挺生硬的,简单的来说第一次打开文件进行第一行的字段说明写入,然后第二次打开文件对数据的追加写入,所以存在两个with open()。

# -*- coding: utf-8 -*-
#@Project filename:PythonDemo  MaoyanTOP100.py
#@IDE   :IntelliJ IDEA
#@Author :ganxiang
#@Date   :2020/03/21 0021 09:36import parsel
import requests
import csv
from concurrent.futures import ThreadPoolExecutor,wait,ALL_COMPLETED
import time
def parse_html(url,i):# url ="https://maoyan.com/board/4?offset=10"headers = {  'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" }res =requests.get(url,headers=headers)# print(res.text)sels=parsel.Selector(res.text)##解析网页texts =sels.css("dd")#css定位到存放电影标签的上级标签with open("./SaveData/maoyanTOP100.csv",'a+',newline="")as f:write =csv.writer(f)for sel in texts:title=sel.css('p.name a::text').getall()[0]#getall()以列表的形式返回所有数据,get()返回一个数据href=sel.css('p.name a::attr(href)').getall()[0]actor =sel.css('p.star ::text').getall()[0].strip()show_time =str(sel.css('p.releasetime ::text').getall()[0]).replace("上映时间:","")score ="".join(sel.css('p.score i::text').getall())row =[str(i),str(title),"https://maoyan.com"+str(href),actor,show_time,score]write.writerow(row)print(i,title,"https://maoyan.com"+str(href),actor,show_time,score)i+=1def run():t1 =time.time()with open("./SaveData/maoyanTOP100.csv",'w',newline="")as f:header=["rank","电影名","电影链接","演员","上映时间","评分"]write=csv.writer(f)write.writerow(header)#1,不使用多线程执行程序# for i in range(0,110,10):#     url ="https://maoyan.com/board/4?offset={}".format(i)#     parse_html(url,i+1)#2,使用多线程执行程序executor =ThreadPoolExecutor(max_workers=3)#设置线程个数# submit()的参数:第一个为函数,其他是为该函数的传入参数,允许有多个tasks =[executor.submit(parse_html,"https://maoyan.com/board/4?offset={}".format(url),url)for url in range(0,110,10)]wait(tasks, return_when=ALL_COMPLETED)# 等待所有的线程完成,才进入后续的执行t2=time.time()print("使用线程的时间为:",t2-t1)#使用线程的时间为: 1.9762754440307617# print("不使用线程的时间为:",t2-t1)#不使用线程的时间为: 7.454896450042725if __name__ =='__main__':run()

4. 效果如图
在这里插入图片描述

5.csv中展示

在这里插入图片描述
欧克啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_862061.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬取某金融网站的用户评论,并进行词云图可视化。

python爬取某金融网站的用户评论,并进行词云图可视化。 一,爬取数据 1. 唠叨一下 多说一句,这里编写的代码用来作为学习所用,希望使用者不要恶意的用来造成别人的网站服务器压力,我们爬到数据就行不要恶意运行代码&a…

Companion Sitemap Generator WordPres网站地图插件安装使用

Companion Sitemap Generator – HTML & XML是一款 WordPress网站地图插件,用于生成 WordPress网站地图。站点地图是一个 xml静态文件,提供网站页面信息。站点地图告诉搜索引擎哪些页面重要,并提供这些页面的有价值的信息。搜索引擎通过读…

wordpress友链插件SEO优化必备插件-Simple Links

WordPress SEO插件 – Simple Links。 这是由国人Awaken开发的一款方便添加内部链接的插件,可以让你轻松地在一篇文章中插入已经发布的文章的链接, 存放在/wp-content/plugins下解压 https://share.weiyun.com/2cL5IOfb

start.spring.io网站访问不到

start.spring.io网站经常访问不到,修改server URL为aliyun https://start.aliyun.com/

如何制作自己的网站?

1、购买一个域名,一个虚拟主机 2、解析该域名,进行DNS解析(有的需要是Cname解析) 查看解析是否成功: 运行输入cmd , Enter, 输入ping www.XXX.com ,Enter, 出现下图,解析成功 3、虚拟主机绑…

如何制作网站_如何制作自己的网站

如何制作网站_如何制作自己的网站 今天我们为初学者提供了一种快速简单的方法来创建网站,而无需学习HTML / CSS编码或阅读冗长乏味的教程。 在本指南中,我们将向你展示大多数Web开发人员如何构建他们的站点以及如何避免昂贵的网站建设费用,这…

5种简单方法来增加网站流量

5种简单方法来增加网站流量 你是否为努力增加网站流量而想尽一切方法,即使您已尝试过各种“方法”?无论你做什么,你的网站流量数字都不会让步......而且你的网站赚不到钱。好吧,我们今天分享实用的网站流量增长方法,希…

模板建站什么意思?对网站开发和运营好吗?

“模板建站什么意思?对网站运营好不好”这个问题是一个网友提问的,这边解答一下。模板建站的意思就是利用第三方平台提供的网站模板,自主建站。很多行业新人觉得模板建站对网站运营不利,但其实不然,说明你对模板建站还…

企业会用的网站制作软件有哪些?效果哪个好?

不同企业单位都有自己习惯用的网站制作软件,现在网上各种各样的网站制作软件有很多,要说效果哪个好,具体还是要根据程序员们的水平来定,根据我的经验,分为不同的等级水平分享一些我所了解的网页制作软件: …

实测分析免费建站软件有哪些?哪个最好?

免费建站软件行业从很早之前就已经开始发展,很多个人站长都利用免费建站软件平台拥有自己的博客、论坛、网站……建站的目的各不相同,有的是为了个人爱好,有的是为了创业,有的是为了展示个人工作室,我自己亲测了很多免…

SEO建站优化白皮书之如何给网站定位?

同样都是做网站,为什么我的网站就是不如别人的网站效果好呢?问题出在网站定位没做好! 一、网站定位是什么? 简单来说,网站定位就是确定网站的风格、用途、展现形式等内容。很多企业组织或个人希望通过建立网站&#x…

什么是网站建设?网站建设的常见要素有哪些?

互联网时代,越来越多的企业想要建设自己的网站,但是等到真的开发完网站之后,又傻眼了:网站该怎么建设,才能发挥它的作用?甚至有些小白对什么是网站建设都没有概念。 那么我首先跟大家科普下网站建设是什么…

不懂技术的小白,使用电商网站建设工具有什么注意事项?

对于不懂代码,不会技术的小白来说,想要做一个电商网站,快速的方式应该就是使用电商网站建设工具。而且现在很多程序员如果要做电商网站,也会使用很多国内外的电商网站建设工具。但是电商网站也有很多需要注意的地方,接…

简历类个人网站如何制作?

又是一年毕业季,各位找工作的毕业生们想必已经开始忙碌了。找工作的第一步便是让HR认识自己,但是,普通的简历所承载内容有限,而且只有文字部分,想要单凭纸质简历从众多竞争者中脱颖而出,实在太难了。 另外…

个人博客建站教程最全解析

前不久开始筹备自己的个人博客网站,由于没有经验,走了不少弯路。今天把个人博客搭建需要了解的相关知识整理一下,也给大家解答下一些常见问题。 首先是关于个人博客建站的难易度问题,很多人都以为不懂代码无法建站,于…

我的个人博客网站是怎么制作的?

首先得恭喜自己,因为今天我的个人博客网站终于上线了!要问到我做个人博客的初衷是什么?这得追溯到大学的时候,大学刚接触到Dreamweaver,喜欢上Photoshop是就萌芽出做一个属于自己的网站。那时就在想有个自己的网站得多…

网站制作中如何增加界面的信任体验

建站者在制作网站过程中需要站在用户的角度去考虑网站的信任体验,如何增加信任体验,延长用户浏览网站的时间,重在细节斟酌,强调稳定性,小编今天给大家总结一下: 1、底部信息:网站底部信息内容是…

新手如何建立网站,网站建设的几个步骤。

一、购买域名 新手建立网站,域名是必不可少的。简洁的域名能让人记忆深刻。选择域名大部分都以.com为主,也有很多新的后缀域名。域名后缀不同价格也不同,一般以年为单位。新手可以到阿里域名平台购买。二、购买虚拟主机 虚拟主机和服务器可…

网站建设后怎么提高网站打开相应速度

怎么提高网站打开相应速度 很多用户会发现做网站发布到服务器上后访问速度很慢,这个对网站来说是个致命伤,网站相应速度慢,即使网站做的很漂亮,内容很完整,客户打开蜗牛一样的也会失去耐心,可能直接关闭网站…

企业建站的意义是什么

建网站最根本的作用就是宣传,互联网,是一个可以用最低的成本让企业形象和产品传播更远的的方案。当前时代已经到了网络时代后期,但是很多企业管理者还是没有真正适应这个时代,观念没有转变过来,这是需要管理者多和网络…