其实事情是这样的,上个礼拜我去面试一家公司,工作是做爬虫。然后有了以下对话。
面试官:你是自学的,我有一些问题问你,python的浅拷贝和深拷贝是什么?
我:呵呵
面试官:额。。。你能不能说一说你是怎么理解python的面向对象编程?
我:呵呵
面试官:额。。。。好吧,我不问你基础了。你有没有爬过动态的网页?
我:有啊,我爬过豆瓣啊。
面试官:那我让你爬视频网站你怎么爬?F12里查看器是看不到视频地址的!
我:看不到么?
面试官:嗯!
我:不知道。。。。。
面试官:额。。。。你这样让我很为难的,要不你去试试爬腾讯视频。
我:好啊好啊!
面试官:你不要想用那些模拟浏览器来渲染JS哦!直接抓包!
结果我回到家一看!!什么鬼!!!!
真的什么地址都没有啊!!!
怎么办?抓包?什么是抓包啊!!!
我只会用selenium加火狐浏览器来模拟爬动态网页啊。。。这工作是没希望了么?
我是个不会放弃的人!!然后就去百度了:
如何用python抓包
如何用python爬JS
后来经人指点我才明白抓包就是去F12里的network找包。。。。
然后我又百度了:
如何用python爬AJAX
仍然没个吊用!
不过我在简书搜索爬腾讯视频时候学会了直接用chrome的模拟手机浏览器可以登录移动端的视频网站,可以直接看到视频的地址链接。
但是。。。。。怎么用代码爬啊??
好了废话到此为止,大家也不想听下去了。我直接进入正题吧!
经过三天的学习,我首先弄清楚了对于这种动态网站的爬取方法。
首先,用network找到一个专门接收请求的真实地址,或者后门网址。
就是这个,只要在网址里加入参数,它就会返回数据。拉下去,我们可以看道参数
这里的参数有很多并不是必须的。我先在这里提前说一下,最后我们是要根据观察来找出规律重构出这个网址,因为我们做爬虫的不可能上网站开F12来找信息的。
我们看下网址打开后有什么
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<root>
<exem>0</exem>
<hs>0</hs>
<ls>0</ls>
<tm>1479138997</tm>
<dltype>1</dltype>
<preview>135</preview>
<sfl>
<cnt>0</cnt>
</sfl>
<fl>
<cnt>3</cnt>
<fi>
<sl>0</sl>
<br>64</br>
<id>10703</id>
<name>sd</name>
<lmt&g