爬虫篇——User-Agent爬取备用及存储

  • 代码

代码

本文通过抓取常见的User-Agent(用户代理),将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新请求头中的User-Agent,模拟真实的浏览器发送请求,从一方面避免抓取数据时反爬的干扰。

# *********************** User-Agent 爬取 ********************************
import requests
from bs4 import BeautifulSoup
import re
import json
import urllib.requestclass UserAgentSpider(object):def __init__(self):self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}self.url = "https://blog.csdn.net/jamesaonier/article/details/89003053"self.user_agent_list = []self.validation_user_agent_list = []# 1、发送网络请求 获取数据def data_request(self):return requests.get(self.url,headers = self.headers).content.decode("utf-8")# 2、数据解析def data_parse(self,data):parse_data = BeautifulSoup(data,"lxml")all_agent = parse_data.select("div p")[1:12]for agent in all_agent:pattern = re.compile("\n")each_agent = pattern.split(agent.get_text())[1:]for each in each_agent:self.user_agent_list.append(each)# 3、检验user-agent的可用性def test_validation(self):for agent in self.user_agent_list:try:url = "https://www.baidu.com/"headers = {}headers["User-Agent"] = agentrequests.get(url,headers = headers)self.validation_user_agent_list.append(agent)except urllib.request.HTTPError as error:print(error.code)# 4、数据存储def data_save(self):with open("./User-Agent.json","w",encoding = "utf-8") as fp:json.dump(self.validation_user_agent_list,fp)# 4、统筹运行def run(self):# 1、请求数据data = self.data_request()# 2、数据解析self.data_parse(data)
#         print(self.user_agent_list)# 3、检验user-agent的可用性self.test_validation()# 4、数据存储self.data_save()if __name__ == "__main__":UserAgentSpider().run()

代码运行结果:

["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60", "Opera/8.0 (Windows NT 5.1; U; en)", "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0", "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)\"", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36"]

by CyrusMay 2020 04 24

从前只想装懂
装作什么都懂
懂得生存的规则之后
却只想要 都不懂
——————五月天——————

爬虫篇——User-Agent爬取备用及存储相关推荐

  1. 爬虫篇——代理IP爬取备用及存储

    爬虫篇--代理IP爬取备用及存储 代码 代码 本文通过抓取免费的高匿IP代理,将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新handle的IP地址,从一方面避免 ...

  2. 洗礼灵魂,修炼python(67)--爬虫篇—cookielib之爬取需要账户登录验证的网站

    学完前面的教程,相信你已经能爬取大部分的网站信息了,但是当你爬的网站多了,你应该会发现一个新问题,有的网站需要登录账户才能看到更多的信息对吧?那么这种网站怎么爬取呢?这些登录数据就是今天要说的--co ...

  3. python爬虫爬取百度图片,python爬虫篇2:爬取百度图片

    入门级 import requests import re import os from urllib import error def main(): dirPath = "E:\pyth ...

  4. Python爬虫,30秒爬取500+篇微信文章!太强啦!

    引言 由于工作需要,给公司前端做了一个小工具,使用python语言,爬取搜狗微信的微信文章, 从热门到时尚圈,并且包括每个栏目下面的额加载更多内容选项 一共加起来500+篇文章 需求 爬取这些文章获取 ...

  5. python爬微信群_利用Python爬虫实现30秒爬取500篇微信文章

    引言 由于工作需要,给公司前端做了一个小工具,使用python语言,爬取搜狗微信的微信文章,附搜狗微信官方网址 ​ 从热门到时尚圈,并且包括每个栏目下面的额加载更多内容选项 ​ 一共加起来500+篇文 ...

  6. [python爬虫] Selenium爬取内容并存储至MySQL数据库

    前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息.通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的.这篇文章主要讲述通过Selenium ...

  7. python爬虫对炒股有没有用_使用python爬虫实现网络股票信息爬取的demo

    实例如下所示: import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url ...

  8. python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询

    本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享" 1. 撩妹起源 俗话说的好:少壮不撩妹,长大徒伤悲啊! 说的很对,但是在这个撩妹的时代,要想成功把到妹, ...

  9. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

最新文章

  1. Python学习笔记(八)
  2. BZOJ.1109.[POI2007]堆积木Klo(DP LIS)
  3. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
  4. 如何创建和谐的色彩系统
  5. r语言主成分分析_PCA主成分分析
  6. HBase 架构详解
  7. Python 入门网络爬虫之精华版
  8. oracle 12514 pl sql,plsql登陆oracle报错!连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的...
  9. linux mysql apache php 安装_linux下安装apache与php;Apache+PHP+MySQL配置攻略
  10. clinit和init(转载)
  11. 2017.11.21 MS Power BI training
  12. vmware 无人参与应答文件包含的产品密钥无效
  13. 我是程序员,我在小区“收垃圾”
  14. SVCHOST启动服务实战
  15. 《史蒂夫乔布斯传》部分读书摘录
  16. 这是啥SQL,室友看了人傻了
  17. android实战理财,基于Android的理财系统APP的设计
  18. latex 背景颜色设置
  19. 【翻译】利用加速度求解位置的算法——三轴传感器
  20. AZ-204认证考试攻略

热门文章

  1. Redis 面试题 50 问,史上最全
  2. GO 语言websocket编程
  3. 跨域问题的前后端解决方案
  4. MySQL: load data infile 需要注意的点
  5. 模拟二:STEMA 考试选择题模拟练习试卷(中级组) 及答案 + 解题后期更新
  6. win定时关机_如何设置电脑定时关机?电脑新手有必要掌握一波!
  7. java 更新ui_你怎么解决Android开发中更新UI报错的异常吗-百度经验
  8. 数据中心消防设施常见安装间距汇总
  9. 某银行省级数据中心IT运维服务体系建设完整思路
  10. CSDN粉丝解答:六月份第一期精选——互联网笔试编程解决、简单bug处理、编程系统设计等