11行代码完成一个超级简单爬虫
2017-12-01 20:24
302 查看
因为去年看过机器学习 Andrew Ng的课程,今天想找来重看一下,发现当没有中文字幕, 啊?? 难当我去年看的就是不带字幕的英文版??
他讲的有一些算法的推导,我认为讲的还是比较好理解的,但是不看中文字幕,推导起来还是有些吃力,找了半天终于找到一个连接,竟然在哔哩哔哩上。
因为之前学了一点爬虫,爬过哔哩哔哩的弹幕,所以今天想把这些视频也爬下来。
我也是上个星期才接触爬虫,只会一些简单的的。今天就把这个最简单的贴出来,也算是对前几天做一下复习吧。
首先我们分析一下哔哩哔哩网址
右键 查看网页源代码 如下图
这里直接把框起来的用正则表达式匹配一下 然后提取出来。 当然,如果只想要前面红框的部分,可以用for循环,然后用字符串拼接,就可以提取了。
这里用到的正则表达式,在代码里面标注了。篮筐里面的我们不要,只需要匹配。红框和黑框需要,就匹配并提去出来。
具体代码如下
我们去E盘下面看一下 就有这个txt文件啦。就是这个样子的。
他讲的有一些算法的推导,我认为讲的还是比较好理解的,但是不看中文字幕,推导起来还是有些吃力,找了半天终于找到一个连接,竟然在哔哩哔哩上。
因为之前学了一点爬虫,爬过哔哩哔哩的弹幕,所以今天想把这些视频也爬下来。
我也是上个星期才接触爬虫,只会一些简单的的。今天就把这个最简单的贴出来,也算是对前几天做一下复习吧。
首先我们分析一下哔哩哔哩网址
右键 查看网页源代码 如下图
这里直接把框起来的用正则表达式匹配一下 然后提取出来。 当然,如果只想要前面红框的部分,可以用for循环,然后用字符串拼接,就可以提取了。
这里用到的正则表达式,在代码里面标注了。篮筐里面的我们不要,只需要匹配。红框和黑框需要,就匹配并提去出来。
具体代码如下
import requests#导入网络请求模块 import re#导入正则模块 url='https://www.bilibili.com/video/av9912938/#page=2' html=requests.get(url)#请求url 这个时候html里面存放的就是url这个网址的源代码 html_List=re.findall("<option value='(.*?)' cid='.*?'>(.*?)</option>",html.text)#从源代码里面提取出我们要的东西 #上面这句re.findall返回一个列表,列表里面的东西就是用正则表达式匹配并提取出来的东西。只需要记住正则表达式'(.*?)'就是匹配并提取我们要的东西 #而‘.*?’就是匹配,但是不提取到列表里面 #上句话中我用到了两次'(.*?)',所以提取到的就是两部分 html_Test=[]#定义一个空列表,来存放我们要的东西 for i in range(len(html_List)): url_1='网址:https://www.bilibili.com/'+html_List[i][0]+' 主题:'+html_List[i][1]#把提取出来的东西,拼接成自己想要的格式 html_Test.append(url_1)#逐条加入空列表然后存入写入文件 with open(r'E:\html_ML.txt','a+',encoding='utf-8') as File: #这里a+就是追加的模式 append 防止后面的内容覆盖前面已经写入的东西 前面的r是为了防止后面字符串有转义符 File.write(html_Test[i]+'\n')
我们去E盘下面看一下 就有这个txt文件啦。就是这个样子的。
相关文章推荐
- 完成一个简单的时间片轮转多道程序内核代码
- Linux内核分析,完成一个简单的时间片轮转多道程序内核代码
- 实验二:完成一个简单的时间片轮转多道程序内核代码
- 一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行
- java实现一个简单的网络爬虫代码示例
- 实验二:完成一个简单的时间片轮转多道程序内核代码
- linux内核分析第二周-完成一个简单的时间片轮转多道程序内核代码
- 一个简单的爬虫代码爬取糗事百科段子(selenium+ChromeDriver)
- 完成一个简单的时间片轮转多道程序内核代码(二)
- 完成一个简单的时间片轮转多道程序内核代码
- Linux内核分析课程--完成一个简单的时间片轮转多道程序内核代码,理解操作系统是如何工作的
- Linux内核分析:完成一个简单的时间片轮转多道程序内核代码
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- 完成一个简单的时间片轮转多道程序内核代码
- Linux 内核分析 第二次作业 完成一个简单的时间片轮转多道程序内核代码
- 一个简单的定向爬虫代码
- Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码
- 2、完成一个简单的时间片轮转多道程序内核代码
- Java一个简单的爬虫:爬去网页代码
- 完成一个简单的时间片轮转多道程序内核代码