Python爬虫学习笔记(一)

Python爬虫学习笔记(一)

最近在学python爬虫,顺便把一些学习记录记下来,可能还有些表述不到位的地方,所以请大家指正下,一起学习,一起进步吧。嗯,这次是一个比较简单的案例,也就10行代码左右,爬取网络源代码,用到了requests库,如果没有安装的可以用下面的命令安装一下:

pip install requests

先把源代码附上,然后我们再慢慢解说了。
这里是基础案例,以百度为例,所以就没有添加headers里面的信息,后面会说爬取有反爬虫的网站,我们该怎么办。

import requests

def get_html(url):
    html = requests.get(url)
    if html.status_code == 200:
        html.encoding = 'utf-8'
        print(html.text)
    else:
        print('ERROR:', url)

if __name__ == '__main__':
    url = 'https://www.baidu.com/'
    get_html(url)

毫无疑问,先导包
我们前面已经说了这次用的是requests包,这个包可以解决大部分的爬虫问题

import requests

然后,获取界面上的源代码,这里用get请求就可以了,这时源码相关的信息已经贴上了html的标签

html = requests.get(url)

这时候我们需要判读我们刚刚的请求是否成功,直接判断他返回的状态码是否等于200就可以了

    if html.status_code==200:

顺便说下基础的返回数字代表的信息

200   成功,服务器已成功处理了请求

3xx 	表示要完成请求,需要进一步操作(跳转界面之类的)。
 
4xx		 这些状态代码表示请求可能出错(也就是我们代码方面可能有问题),妨碍了服务器的处理。

5xx		 这些错误一般是服务器本身的错误,而不是请求或代码出错。

再将获取的html的编码格式设置为utf-8

html.encoding = 'utf8'

下一步打印输出:

 print(html.text)

如果觉得这种输出不太方便看,可以使用pprint库先导包

import pprint

调用:

        pprint.pprint(html.text)

然后就是程序的main函数,也就是启动这个程序
url是你要爬取的目标网址,调用刚刚写好的方法就可以了

if __name__ == '__main__':
    url = 'https://www.baidu.com/'
    get_html(url)

最后我们来说下一些比较基础的反爬虫应对方法,那就是添加headers,里面放可以有选择的放三个比较常用的参数

headers = {
    'Referer': '..............',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
    'Cookie': '............'
}

这三个参数来自于你要爬取的网站,按F12或右键检查源码,network第一个文件header里,如下图:
Python爬虫学习笔记(一)_第1张图片
里面的信息直接复制即可,使用headers方法如下:

 html = requests.get(url, headers=headers)

其它方面我们保持不变,就可以破解反爬虫中最常见的三种措施了,其他的下次有空我们在一起学习吧。

你可能感兴趣的:(python爬虫学习笔记)