当前位置:   article > 正文

简单网络爬虫(封装)_爬虫封装文档

爬虫封装文档

一、网络爬虫过程

步骤1、分析需求

步骤2、根据需求,选取网页(指定URL地址)

步骤3、网站数据获取到本地

步骤4、定位数据

步骤5、数据存储(MySQL,Redis)

二、代码实现

  1. 步骤1. 传入url
  2. 步骤2. user_agent
  3. 步骤3. headers
  4. 步骤4.定义Request
  5. 步骤5.urlopen
  6. 步骤6. 返回byte数组

1、导入包 

  1. #导包
  2. from urllib import request, parse
  3. from urllib.error import HTTPError, URLError

 3、定义请求方式函数

  1. #定义get请求函数
  2. def get(url,headers=None):
  3. return urlrequests(url,headers=headers)
  4. #定义post请求函数
  5. def post(url,form,headers=None):
  6. return urlrequests(url,form,headers=headers)

 2、对爬虫进行简单封装

  1. #爬虫封装函数
  2. def urlrequests(url,form=None,headers=None):
  3. #模拟浏览器
  4. user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
  5. if headers == None:
  6. headers = {'User-Agent':user_agent}
  7. html_bytes = b''
  8. try:
  9. if form:
  10. #POST请求方式
  11. #(1):转换成str格式
  12. form_str = parse.urlencode(form)
  13. #(2):转换成bytes类型
  14. form_bytes = form_str.encode('utf-8')
  15. #去网站访问数据
  16. req = request.Request(url,data=form_bytes,headers=headers)
  17. #指定写入文件
  18. with open('fanyi.html','wb') as f:
  19. f.write(html_bytes)
  20. else:
  21. #GET请求方式
  22. req = request.Request(url,headers=headers)
  23. response = request.urlopen(req)
  24. html_bytes = response.read()
  25. except HTTPError as e :
  26. print(e)
  27. except URLError as e :
  28. print(e)
  29. return html_bytes
  30. if __name__ == '__main__':
  31. url = 'http://fanyi.baidu.com/sug/'
  32. form = {'kw':'汽车'}
  33. html_bytes = post(url,form)
  34. print(html_bytes)

4、输出结果

b'{"errno":0,"data":[{"k":"\\u6c7d\\u8f66","v":"[q\\u00ec ch\\u0113] car; automobile; auto; motor vehicle; aut"},{"k":"\\u6c7d\\u8f66\\u7ad9","v":"bus station;"},{"k":"\\u6c7d\\u8f66\\u5c3e\\u6c14","v":"\\u540d automobile exhaust; vehicle exhaust;"},{"k":"\\u6c7d\\u8f66\\u4eba","v":"\\u540d Autobots;"},{"k":"\\u6c7d\\u8f66\\u914d\\u4ef6","v":"auto parts;"}]}'

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/848647?site
推荐阅读
相关标签
  

闽ICP备14008679号