Python爬虫实验报告之Big_Homework1_Lishipin

Python爬虫实验报告之Big_Homework1_Lishipin实验目的:爬取梨视频网站某模块全部信息;字段信息为:视频标题、作者、点赞数,纯视频链接,并且存入txt文档。实验过程截图:源码:1importrequests2fromlxmli

大家好,又见面了,我是你们的朋友全栈君。

实验目的:

爬取梨视频网站某模块全部信息;

字段信息为:视频标题、作者、点赞数,纯视频链接,并且存入txt文档。

实验过程截图

<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin

 

源码:

<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin
<span role="heading" aria-level="2">Python爬虫实验报告之Big_Homework1_Lishipin

 1 import requests
 2 from lxml import etree
 3 from urllib import request
 4 import re
 5 
 6 # 全局变量(请求头+文件IO对象)
 7 headers = {
 8     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.44'}
 9 file = open('./梨视频.txt', 'w', encoding='utf-8')
10 
11 
12 # 采集前端源码
13 def index():
14     for num in range(0, 493, 12):
15         base_url = 'https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=59&start={}'.format(num)
16         print('正在写入', base_url, '中的数据信息...')
17         response = requests.get(base_url, headers=headers)  # 模拟访问+请求头
18         response.encoding = 'utf-8'  # 解码
19         html = response.text  # 获取源码
20         clean(html)  # 清洗数据
21 
22 
23 # 清洗数据
24 def clean(html):
25     htmls = etree.HTML(html)  # 预处理
26     video_titles = htmls.xpath('//div[@class="vervideo-bd"]/a/div[2]/text()')
27     # print(video_titles),视频标题
28     video_authors = htmls.xpath('//div[@class="vervideo-bd"]/div/a/text()')
29     # print(video_authors),作者
30     video_likes = htmls.xpath('//div[@class="vervideo-bd"]/div/span/text()')
31     # print(video_likes),点赞数
32     video_urls1 = htmls.xpath('//div[@class="vervideo-bd"]/a/@href')
33     # print(video_urls1),不完整的视频链接
34     printt(video_titles,video_authors,video_likes,video_urls1)
35 
36 
37 # 打印数据
38 def printt(video_titles,video_authors,video_likes,video_urls1):
39     # 拼接
40     for vu,vt,va,vl in zip(video_urls1,video_titles,video_authors,video_likes):
41         video_urls2 = 'https://www.pearvideo.com/' + vu
42         # print(video_urls2)
43         # 第二层访问
44         response = requests.get(video_urls2)
45         response.encoding = 'utf-8'
46         html = response.text
47         # print(html)
48         # 吸星大法
49         pattern = re.compile('srcUrl="(.*?)",vdoUrl')
50         video_url = pattern.findall(html)[0]
51         # print(video_url)
52         full_info='视频标题:'+vt+'\t'+'作者:'+va+'\t'+'点赞数:'+str(vl)+'\n'+video_url
53         file.write(full_info+'\n')
54 
55 
56 # 下载模块
57 def download():
58     pass
59 
60 
61 if __name__ == '__main__':
62     index()
63     file.close()

View Code

实验心得:

因为我先写的大作业2,所以这个写的顺的一批,中间也没遇到什么烦人的bug,又是一段开心的编程经历。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156168.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动端开发绪论

    移动端开发绪论移动端开发基础通常移动端开发主流方案一共有两种一种是单独制作移动端页面,目前在市场上是主流方案还有一种是响应式页面兼容移动端这种虽然不是主流方案,但是应用这种开发方案的也不是没有.我们访问移动端页面可以通过以下两种方式进行访问:网址域名加m(mobile)就可以直接访问页面的移动端页面使用移动设备,进行访问,则可以直接跳转到移动端页面又到了我们最头疼的浏览器的兼容性问题移动端浏览器基本以webkit内核为主,因此我们只需要考虑webkit兼容性问题即可。移动端浏览器

    2022年6月24日
    28
  • Window系统内核版本号及其查看方法「建议收藏」

    Window系统内核版本号及其查看方法「建议收藏」一.WindowsNTWindwosNT是一系列操作系统的总称。WindowsNT(NewTechnology)是Microsoft在1993年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做PC操作系统。它与通信服务紧密集成,基于OS/2NT基础编制。OS/2由微软和IBM联合研制,分为微软的MicrosoftOS/2NT与IBM的IBMOS/2。

    2022年8月23日
    15
  • android bindservice方法,android BindService[通俗易懂]

    android bindservice方法,android BindService[通俗易懂]1、绑定服务1.1绑定方式通过服务链接(ServiceConnection)或直接获取Service中状态和数据信息服务链接能够获取Service的对象,因此绑定Service的组件可以调用Service中的实现的函数使用Service的组件通过Context.bindService()建立服务链接,通过Context.unbindService()停止服务链接如果在绑定过程中Service没有启…

    2022年5月1日
    193
  • Android之androidmainfest.xml配置文件详解

    Android之androidmainfest.xml配置文件详解

    2021年6月18日
    112
  • 【插件】推荐两个谷歌浏览器的插件[通俗易懂]

    昨天加班到很晚,遇到一个很奇怪的问题,今天才大概定位产生的原因! 很多时候问题很难复现,导致排查问题的效率就不是那么的高效!本来想着写一下这次排查问题的总结,还是后面有时间在写。今天分享两个谷歌浏览器(程序员必备浏览器)的插件,我一直在用,特别好用,所以推荐给你!CSDN中屏蔽百度广告 – Adblock Plus插件我自己有时候会在CSDN写一些技术总结等,每次访问都会百度广告,真是TM…

    2022年2月27日
    166
  • SPPnet 详解[通俗易懂]

    SPPnet 详解[通俗易懂]RCNN系列:RCNN,SPPNet,FastRCNN,FasterRCNN,R-FCN。  前不久刚刚看完rcnn和fastrcnn,对目标检测的学习更进一步。sppNet简介:作者:何凯明  2016年加入成为FAIR(facebook微软研究员),2011年获得博士学位,主要兴趣和研究在计算机视觉和深度学习。获得cpvr和iccv多个奖项。 SP…

    2022年6月12日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号