200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python爬虫基本四步骤+简易网页采集器

python爬虫基本四步骤+简易网页采集器

时间:2020-10-07 12:09:39

相关推荐

python爬虫基本四步骤+简易网页采集器

网络请求模块:urllib模块(比较复杂)、requests模块

一、requests模块:

python中原生的一款基于网络请求的模块,功能强大、简单便捷、效率极高。

1、作用:模拟浏览器发请求

2、如何使用(编码流程):

指定url发起请求获取响应数据持久化存储

3、环境安装:pip install requests

4、实战编码:

需求:爬取搜狗首页页面的数据代码:

import requestsif __name__=="__main__":#step1:指定urlurl='/'#step2:发起请求#get方法会返回一个响应对象response=requests.get(url=url)#step3:获取响应数据,text返回的是字符串形式的响应数据page_text=response.textprint(page_text)#step 4:持久化存储with open("./sogou.html","w",encoding="utf-8") as fp:fp.write(page_text)print("爬取数据结束")

结果:

返回的响应数据(部分截图):

HTML文件打开后界面截图:

5、实战巩固1:爬取搜狗指定词条的搜索结果界面(简易网页采集器)

代码:

import requestsif __name__=="__main__":#UA伪装:将对应的User-Agent封装到一个字典中headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/0101 Firefox/'}url='/web'#处理url携带的参数:封装到字典中kw=input('enter a word:')param={'query':kw}#对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数response=requests.get(url=url,params=param,headers=headers)page_text=response.textfileName=kw+'.html'with open(fileName,"w",encoding="utf-8") as fp:fp.write(page_text)print(fileName,"保存成功!!")

关于url

浏览器中检索“北斗导航”的链接是这样的:/web?query=北斗导航&_asf=&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=23426&sst0=1596357337277&lkt=4%2C1596357313851%2C1596357313956&sugsuv=000E298C716410845E48FF7140CCA041&sugtime=1596357337277

简化一下,是这样的:/web?query=北斗导航

?前面的是浏览器,后面的是我们检索的内容参数。

关于params

这里作为简易网页采集器,检索的内容设置为动态,由用户输入把query存入字典中,query作为key值,value由input输入

关于headers

存放的是User-Agent

获取方法,前一篇笔记中有提到。

学习python爬虫,需要知道什么?

UA检测

门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求是不正常的请求(爬虫)。则服务器端很有可能拒绝此次请求。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。