11行代码完成一个超级简单爬虫

来源:互联网 发布:mac版股票软件 编辑:程序博客网 时间:2024/06/08 04:20

因为去年看过机器学习 Andrew Ng的课程,今天想找来重看一下,发现当没有中文字幕, 啊?? 难当我去年看的就是不带字幕的英文版??

他讲的有一些算法的推导,我认为讲的还是比较好理解的,但是不看中文字幕,推导起来还是有些吃力,找了半天终于找到一个连接,竟然在哔哩哔哩上。

因为之前学了一点爬虫,爬过哔哩哔哩的弹幕,所以今天想把这些视频也爬下来。

我也是上个星期才接触爬虫,只会一些简单的的。今天就把这个最简单的贴出来,也算是对前几天做一下复习吧。

首先我们分析一下哔哩哔哩网址

右键  查看网页源代码 如下图


这里直接把框起来的用正则表达式匹配一下  然后提取出来。  当然,如果只想要前面红框的部分,可以用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文件啦。就是这个样子的。



原创粉丝点击