前言
上篇我们了解了爬虫的基本知识,这次我们来学习下,如何用Python模拟浏览器访问网站和登录。
正文
Python如此方便,正是因为它提供了很多实现好各种功能的库,它内置了许多非常有用的模块,无需额外安装和配置,即可直接使用。
同时也有很多第三方模块,我们只需要用好各种工具库和模块,就能实现很多方便的操作,用程序来代替繁琐的功能。
这次我们来学习urllib和requests模块,实现模拟请求。
urllib介绍
Python内置的HTTP请求库,安装好Python就能用,它是最基本的请求库,用于访问网络资源,程序发起请求,获取响应数据,使用该库实现。
主要有4个模块
urllib.request 请求模块
urllib.error 异常处理模块,捕获请求和响应中出现的错误
urllib.parse url解析模块,提供url处理方法,拆分合并
urllib.robotparser robots.txt解析模块
使用
get请求
get请求一般是我们在浏览器地址直接输入一个地址,就能能访问到网页。
urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应:
# 导入urllib.request 库
import urllib.request
# 向指定的url发送请求,并返回服务器响应的类文件对象
response = urllib.request.urlopen("http://www.baidu.com")
# 类文件对象支持文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()
# 打印字符串
print (html)
我们可以浏览器上打开百度, 右键选择“查看源代码”,你会发现,跟我们刚才打印出来的是一模一样,经过浏览器渲染,就是好看的百度页面。
也就是说,上面的代码就已经帮我们把百度的首页的全部代码爬了下来。
post请求
一般我们想要向某一个地方发送数据,就需要用到post请求。
像我们登