您的位置:闷文网 > 生活 > >正文

​如何写爬虫程序(手把手教你写爬虫)

摘要如何写爬虫程序(手把手教你写爬虫) 最近经常有人问我,明明看着教程写个爬虫很简单,但是自己上手的时候就麻爪了。。。那么今天就给刚开始学习爬虫的同学,分享一下怎么一步...

如何写爬虫程序(手把手教你写爬虫)

最近经常有人问我,明明看着教程写个爬虫很简单,但是自己上手的时候就麻爪了。。。那么今天就给刚开始学习爬虫的同学,分享一下怎么一步一步写爬虫,直至抓到数据的过程。

如何写爬虫程序(手把手教你写爬虫)(1)

准备工具

首先是工具的准备:python3.6、pycharm、requests库、lxml库以及火狐浏览器

这2个库都是python的第三方库,需要用pip安装一下!

requests是用于请求网页,得到网页的源代码,然后用lxml库分析html源码,从中间取出我们需要的内容!

之所以用火狐而不用其他的浏览器,没有别的意思,就是习惯。。。

如何写爬虫程序(手把手教你写爬虫)(2)

分析网页

工具准备好以后呢,我们就可以开始我们的爬虫之旅了!今天我们的目标是抓取猫眼电影的经典影片部分,大约有8万多条数据

如何写爬虫程序(手把手教你写爬虫)(3)

打开网页后,首先就要分析网页源代码,看是静态的还是动态的,或者其他形式,这个网页呢,是静态的网页,所以,源代码中就有我们需要的内容

如何写爬虫程序(手把手教你写爬虫)(4)

如何写爬虫程序(手把手教你写爬虫)(5)

很明显,它的电影名字和评分都在源代码中,但是评分被分成了2部分,这点在写爬虫的时候,就要注意了!

那么,现在整体思路就很明确了:请求网页==>>获取html源代码==>>匹配内容,然后在外面在加一步:获取页码==>>构建所有页的循环,这样就可以将所有内容都抓出来了!下面外面来写代码吧。

开始写爬虫

先导入2个库,然后用一行代码获取网页html,在打印一下看看结果

如何写爬虫程序(手把手教你写爬虫)(6)

好吧,网站不允许爬虫运行!我们加入headers试一下(headers是一个身份证明,表明请求网页的是一个浏览器而不是python代码),获取方式也很简单,打开F12开发者工具,随便找一个网络请求,然后按下图找到请求头,复制相关信息即可,这个header可以保存下,基本一个浏览器都是一个UA,下次直接用就可以。

如何写爬虫程序(手把手教你写爬虫)(7)

注意,在火狐中,header的数据如果很长是会缩写的,看到上图中间的省略号…了吗~所以在复制的时候,要先双击展开,在复制,然后修改上面的代码,在看看

如何写爬虫程序(手把手教你写爬虫)(8)

这次,html被正确的打印出来了!(后面的.text是获取html文本,如果不加,会返回是否获取成功的提示,而不是html源码),我们先构建页码的循环,找一下翻页的html代码

如何写爬虫程序(手把手教你写爬虫)(9)

点击开发者工具中左上角的选择元素,然后在点击页码,下方会自动定位相应的源码位置,这里我们可以直观的看到最大页码,先取出它来,在其上点右键,选择复制Xpath,然后写到代码中

如何写爬虫程序(手把手教你写爬虫)(10)

第9行是表达用lxml中的etree方法解析html,第10行是指从html中找到路径所对应的标签,因为页码是文字显示,是标签的文本部分,所以在路径最后加一个/text()来取出文本,最终取出的内容为列表形式。然后我们在来观察每一页的url,还记得刚才那个页码部分的html吗?

如何写爬虫程序(手把手教你写爬虫)(11)

href的值就是每一个页码所对应的url,当然它省去了域名部分。可以看出啦,它的规律就是offset的值随着页码变化(*30)那么,我们就可以来构建循环了!

如何写爬虫程序(手把手教你写爬虫)(12)

第10行用[0]取出列表中的pn值,然后构建循环,接着就是获取新的url(pn_url)的html,然后去html中匹配我们要的内容!为了方便,加一个break,这样只会循环一次

如何写爬虫程序(手把手教你写爬虫)(13)

然后开始匹配,我们这次只拿出电影名称、评分和详情url3个结果

如何写爬虫程序(手把手教你写爬虫)(14)

可以看到,我们所要的内容在dd这个标签下,它下面有3个div,第一个是图片的,先不用管,第二个是电影名称,详情页url也在里面,第三个div中有评分结果,所以我们可以这么写

如何写爬虫程序(手把手教你写爬虫)(15)

第14行,依然是解析html,第15,16行分别获取class属性为"channel-detail movie-item-title"的div标签下的title值和div下的a标签的href值(这里没有用复制xpath路径,当然如果可以的话,也建议大家用这种方式,因为用路径的话,万一网页修改一下结构,那我们的代码就要重新写了。。。)

第17,18行,2行代码获取div标签下的所有文本内容,还记得那个评分吗?它不在一个标签下,而是2个标签下的文本内容合并的,所以用这种方式获取!

然后,用zip函数,将内容一一对应的写入txt文件里

如何写爬虫程序(手把手教你写爬虫)(16)

注意内容间隔和换行!

至此,爬虫部分基本完成!先来看看效果吧,时间有限,就先抓前5页,代码和结果如下:

如何写爬虫程序(手把手教你写爬虫)(17)

如何写爬虫程序(手把手教你写爬虫)(18)

后记

整个爬虫过程,没有什么难点,开始需要注意报头信息(headers),后面在抓取数据的过程中,匹配方式也要多学多用,最后注意数据量,2个方面:抓取间隔和抓取的数量,不要对网站造成不好的影响这个是基本的要求!还有就是这个网站到后面,大约是100多页往后的时候,就需要登录了,这点要注意,具体的大家可以自己去尝试哦!

如何写爬虫程序(手把手教你写爬虫)(19)

,

标签:

推荐阅读

  • ​成年女性喜欢的颜色(原来女人们都喜欢这个颜色)

    成年女性喜欢的颜色(原来女人们都喜欢这个颜色) 都说紫色是属于女人的颜色,它们神秘、浪漫,当然最主要是够骚! 由于女人大部分是闷骚而矜持的,因此当她们想表露出内心中...

    2023-08-21 16:26:26
  • ​四月的雅称叫什么,四月的别称都有哪些

    四月的雅称叫什么,四月的别称都有哪些 本文目录 1.四月的别称都有哪些2.古人对12个月份的雅称是什么3.四月的古代雅称4.月份的别称雅称 四月的别称都有哪些 四月的别称有孟夏、槐月...

    2023-08-21 14:45:30
  • ​鲁迅先生诞辰140周年纪念(鲁迅诞辰一百四十年)

    鲁迅先生诞辰140周年纪念(鲁迅诞辰一百四十年) 吴靖 近代以来,鲁迅或许是第一位深刻思考天才问题的中国人。 现代意义上的天才概念大约诞生于17世纪,指一个具有“天生的智力...

    2023-08-21 14:43:24
  • ​生日礼物 创意,什么生日礼物有实用价值又有创意

    生日礼物 创意,什么生日礼物有实用价值又有创意 本文目录 1.什么生日礼物有实用价值又有创意2.送女生什么生日礼物比较有创意3.最有创意的生日礼物送男生4.有没有什么创意的生日礼...

    2023-08-21 14:41:18
  • ​清明节的意义,清明节有什么意义?

    清明节的意义,清明节有什么意义? 本文目录 1.清明节有什么意义?2.清明节的意义10个字3.清明节的意义是什么4.清明节的意义 清明节有什么意义? 清明 最早只是一种节气的名称,其变成纪...

    2023-08-21 14:39:11
  • ​傣族的生活习惯,傣族人民的生活特色

    傣族的生活习惯,傣族人民的生活特色 本文目录 1.傣族人民的生活特色2.傣族的风土人情和民俗特点3.傣族的风俗习惯简单一点4.傣族人生活方式 傣族人民的生活特色 傣族主食以大米为主...

    2023-08-21 14:37:03
  • ​怎么锻炼盆底肌,盆底肌松弛怎么锻炼

    怎么锻炼盆底肌,盆底肌松弛怎么锻炼 本文目录 1.盆底肌松弛怎么锻炼2.盆底肌肉收缩锻炼方法3.有什么办法可以锻炼盆底肌松弛4.如何锻炼盆底肌防止漏尿 盆底肌松弛怎么锻炼 首先,找...

    2023-08-21 14:34:58
  • ​世界最长的河流,世界最长的河流是

    世界最长的河流,世界最长的河流是 本文目录 1.世界最长的河流是2.世界最长的河流3.世界最长的河流是4.世界最长的河流是什么 世界最长的河流是 世界最长的河流是:尼罗河。 尼罗河...

    2023-08-21 14:32:52
  • ​论文怎么写 基本结构,本科毕业论文的基本结构内容

    论文怎么写 基本结构,本科毕业论文的基本结构内容 本文目录 1.本科毕业论文的基本结构内容2.论文结构怎么写3.教育论文的基本结构包括4.论文怎么写 本科毕业论文的基本结构内容 毕...

    2023-08-21 14:30:46
  • ​刘邦泗水亭长是什么官,刘邦的泗水亭亭长相当于现在什么官

    刘邦泗水亭长是什么官,刘邦的泗水亭亭长相当于现在什么官 本文目录 1.刘邦的泗水亭亭长相当于现在什么官2.刘邦在泗水亭的故事3.刘邦曾做过泗水亭亭长,这个亭长在现代是个多大的官...

    2023-08-21 14:28:40
  • ​全棕床垫的优缺点,山棕床垫的优缺点

    全棕床垫的优缺点,山棕床垫的优缺点 本文目录 1.山棕床垫的优缺点2.山棕床垫的优缺点3.床垫上放棕垫好不好4.全棕床垫的优缺点分别是什么 山棕床垫的优缺点 棕床垫有人说是使用起来...

    2023-08-21 14:26:34
  • ​广东湛江风俗,湛江的风俗节日有哪些类型的

    广东湛江风俗,湛江的风俗节日有哪些类型的 本文目录 1.湛江的风俗节日有哪些类型的2.湛江有什么传统风俗3.湛江的风俗葬礼4.河南的传统民俗文化都有哪些 湛江的风俗节日有哪些类型...

    2023-08-21 09:16:58
  • ​梓晴取名寓意(还在取名梓睿)

    梓晴取名寓意(还在取名梓睿) 近日,广东佛山公布“2020新生儿爆款名字”引起热议。在当地,男孩取名为“梓睿”的最多,而“梓晴”已连续5年高居女孩取名榜首位。如何取一个好...

    2023-08-21 09:14:53
  • ​中秋节短信祝福语,中秋节的祝福语简短英语

    中秋节短信祝福语,中秋节的祝福语简短英语 本文目录 1.中秋节的祝福语简短英语2.简单中秋节祝福语 手抄报3.星云大师中秋祝福语大全4.中秋节短信祝福语简单领导 中秋节的祝福语简短...

    2023-08-21 09:12:48
  • ​遂心应手的意思,心字的成语大全?

    遂心应手的意思,心字的成语大全? 心字的成语大全 “心???”的成语:心旷神怡 心无旁骛 心有余悸 心安理得 心如止水 心猿意马 心悦诚服 心照不宣 心惊肉跳 心宽体胖 心驰神往...

    2023-08-21 09:10:43
  • ​咖啡色搭配什么颜色,咖啡色与什么颜色搭配好看

    咖啡色搭配什么颜色,咖啡色与什么颜色搭配好看 本文目录 1.咖啡色与什么颜色搭配好看2.咖啡色与什么颜色搭配好看3.咖啡色搭配什么颜色最佳4.咖啡色与什么颜色搭配好看 咖啡色与什...

    2023-08-21 09:08:38
  • ​25岁属于什么年华,男的25岁属于什么年龄段

    25岁属于什么年华,男的25岁属于什么年龄段 本文目录 1.男的25岁属于什么年龄段2.25岁什么年华男3.25岁什么年华男4.年岁的岁是什么结构 男的25岁属于什么年龄段 25岁属于什么年龄段 25岁...

    2023-08-21 09:06:33
  • ​元素周期表51,你是我的元素周期表的第51个周期?

    元素周期表51,你是我的元素周期表的第51个周期? 你是我的元素周期表的第51个周期 第51号元素是锑,元素符号是Sb 元素周期表前100位 1、原子序号:1;中文名:氢;读音:qīng;元素...

    2023-08-21 09:04:29
  • ​小年夜是农历几号,小年是阴历几月初几日

    小年夜是农历几号,小年是阴历几月初几日 本文目录 1.小年是阴历几月初几日2.小年是农历几号到几号3.小年是农历哪一天20224.小年是在农历的几月几日啊 小年是阴历几月初几日 由于各...

    2023-08-21 09:02:24
  • ​君博名字的寓意,徐君博这名字怎么样

    君博名字的寓意,徐君博这名字怎么样 本文目录 1.徐君博这名字怎么样2.刘鑫辰名字怎么样3.202最有内涵的名字202又好听又有内涵的名字4.姜博洋这个名字怎么样? 徐君博这名字怎么样 梓...

    2023-08-21 09:00:18