爬虫,就是用程序代替人去访问网站,然后把网站上需要的东西拿下来;类似人输入网址,看到页面,然后复制粘贴,只是把这个过程自动化。

那么第一步就是去访问网站,要看到网站的页面,对程序来说也就是源码。笔者在学爬虫时曾被这一步卡了挺久;想爬知乎,但查了不少资料,大多是说怎么解析源码的,怎么从源码中定位需要的内容;但源码从哪来呢?源码不过就是字符串,总会有工具能提取的,是在不行自己写工具也行;但对于高手们来说,这似乎是个简单到不需要说的东西;无米之炊啊;我也是菜鸟,所以准备写一写。

01安装python


当然,最最基础的还是得先把Python装上,还有写代码的工具;推荐Pycharm。安装的教程网上很多,搜下就有。Pycharm用免费版就行,小白要有小白的自觉,高级的用不上的。Python版本用3的。

装好Pycharm后,要安装库。库就是别人写好的程序,做成了工具箱;当成个装了锤子、剪刀、扳手的工具箱就行;安装库就是从商店把工具箱买回来。

File→Settings→Project Interpreter→右上方的+号→搜索requests(有s)→Install Package 安装。如果没有项目,就随便找个地方新建个txt文档,后缀改成.py,然后用Pycharm打开。

JS python 网页源码 python获取网页源码_python爬虫源码

JS python 网页源码 python获取网页源码_python获取网页源码不完整_02

02如何使用


工具箱买回来了,下面开始用。

import requests
 s = requests.session()
 url = "http://www.baidu.com"data = s.get(url)with open("baidu.txt","w+",encoding='UTF-8') as f:
     f.write(data.content.decode("utf-8"))

import requests 把这个工具箱拿过来。

s = requests.session() 其中的一个工具取个短名,就叫s。

url = "http://www.baidu.com" 这是我们要测试的地址,主要http://不能省。用双引号包起来说明是个字符串。

data = s.get(url) s.get(url)就是让程序去访问网站,拿到源码了,拿到的源码命名为data。

with open("baidu.txt","w+",encoding='UTF-8') as f:

源码拿到了我们又看不见,很抽象,很难受,我当时是喜欢把它们写到文档里再研究;所以创建个baidu.txt(用完整的路径也行)的文档,w+模式打开,文件编码是UTF-8,告诉程序这个文件里面写的是中文,不是俄语。as f,让这个文件打开后代号为f,对f的操作就是对文件的操作。

    f.write(data.content.decode("utf-8")) 对f执行write操作,写入的内容是获取的源码data中的content;data是requests.Session.get返回的一整坨东西,是一个结构体,不是能写入文本文件的字符串,所以要用里面的content。.decode("utf-8") 意思是把鸟语翻译成格式为”utf-8”中文再写进去。

这些代码可以直接复制到Python Console回车就可以执行;会再py文件所在路径或者你自己设定的baidu.txt的路径生成一个baidu.txt的文件;打开就可以看到源码。

JS python 网页源码 python获取网页源码_python获取网页源码不完整_03

JS python 网页源码 python获取网页源码_python爬虫源码_04

打开后可以看到格式比较乱;至于规则化输出,源码解析工具,程序调试之类的事情,后续再写。