网页文章采集器(网络请求模块:urllib模块(比较复杂)、requests模块(图))

优采云 发布时间: 2021-08-30 10:01

  网页文章采集器(网络请求模块:urllib模块(比较复杂)、requests模块(图))

  网络请求模块:urllib模块(复杂),请求模块

  一、requests 模块:

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

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

  2、使用方法(编码过程):

  3、Environment 安装:pip 安装请求

  4、实战编码:

  import requests

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

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

  

  HTML 文件打开后的界面截图:

  

  5、实战修改1:搜狗指定词条搜索结果爬取界面(简单网页采集器

  import requests

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

  在浏览器中搜索“北斗导航”的链接是这样的:北斗导航&_asf=&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=23426&sst0=72565C0708C08C00000C

  为了简化,它看起来像这样:北斗导航

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

  这里作为一个简单的网页采集器,将检索到的内容设置为动态,查询通过用户输入存储在字典中,查询为key值,通过input输入值

  存储用户代理

  如何获得,在之前的注释中提到过。

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

  portal网站的服务器会检测对应请求的运营商ID。如果检测到请求的运营商ID是某个浏览器,则说明该请求是正常请求。但是,如果检测到请求的运营商身份不是基于某个浏览器,则说明该请求为异常请求(爬虫)。那么服务器很可能会拒绝请求。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线