采用settings.py的方式进行设置user agent和proxy列表
http://www.tuicool.com/articles/VRfQR3U
http://jinbitou.net/2016/12/01/2229.html(本人用的这种)
网站的反爬虫策略:
http://www.cnblogs.com/tyomcat/p/5447853.html
1.在settings.py同级目录下新建文件useragent.py
# -*-coding:utf-8-*- from scrapy import log import logging import random from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware class UserAgent(UserAgentMiddleware): def __init__(self, user_agent=''): self.user_agent = user_agent def process_request(self, request, spider): ua = random.choice(self.user_agent_list) if ua: #显示当前使用的useragent #print "********Current UserAgent:%s************" %ua #记录 log.msg('Current UserAgent: '+ua, level=logging.DEBUG) request.headers.setdefault('User-Agent', ua) #the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape #for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php user_agent_list = [\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 " "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1", "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 " "(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 " "(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 " "(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 " "(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 " "(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5", "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 " "(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 " "(KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 " "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 " "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24" ]
2.在settings.py同级目录新建文件proxymiddlewares.py
# -*- coding: utf-8 -*- import random, base64 class ProxyMiddleware(object): proxyList = [ \ '121.193.143.249:80','112.126.65.193:80','122.96.59.104:82','115.29.98.139:9999','117.131.216.214:80','116.226.243.166:8118','101.81.22.21:8118','122.96.59.107:843' ] def process_request(self, request, spider): # Set the location of the proxy pro_adr = random.choice(self.proxyList) print("USE PROXY -> " + pro_adr) request.meta['proxy'] = "http://" + pro_adr
3.修改settings.py (注意DOWNLOADER_MIDDLEWARES)
# -*- coding: utf-8 -*- BOT_NAME = 'ip_proxy_pool' SPIDER_MODULES = ['ip_proxy_pool.spiders'] NEWSPIDER_MODULE = 'ip_proxy_pool.spiders' # Obey robots.txt rules ROBOTSTXT_OBEY = False ITEM_PIPELINES = { 'ip_proxy_pool.pipelines.IpProxyPoolPipeline': 300, } #爬取间隔 DOWNLOAD_DELAY = 1 # 禁用cookie COOKIES_ENABLED = False # 重写默认请求头 DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html, application/xhtml+xml, application/xml', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Host':'ip84.com', 'Referer':'http://ip84.com/', 'X-XHR-Referer':'http://ip84.com/' } #激活自定义UserAgent和代理IP # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html DOWNLOADER_MIDDLEWARES = { 'ip_proxy_pool.useragent.UserAgent': 1, 'ip_proxy_pool.proxymiddlewares.ProxyMiddleware':100, 'scrapy.downloadermiddleware.useragent.UserAgentMiddleware' : None, }
4.开始爬取即可
相关推荐
selenium模拟浏览器行为(霸王硬上弓,以后再说) 言归正传,下面介绍一下通过分析页面请求的方法爬取动态加载页面的思路。中心思想就是找到那个发请求的javascript文件所发的请求。 举两个例子,京东评论和上证...
本书共8章,涵盖的内容有Python语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器。本书所有源...
本书共8章,涵盖的内容有Python语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器。
使用Selenium模拟浏览器抓取淘宝商品美食信息 使用Redis+Flask维护动态代理池 使用代理处理反爬抓取微信文章 使用Redis+Flask维护动态Cookies池 框架篇 PySpider框架基本使用及抓取TripAdvisor实战 PySpider架构...
本书共8章,涵盖的内容有Python语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器。本书所有源...
本书共8章,涵盖的内容有Python语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器。本书所有源...
│ 课时16:使用Selenium模拟浏览器抓取淘宝商品美食信息.mp4 │ 课时17:使用Redis+Flask维护动态代理池.mp4 │ 课时18:使用代理处理反爬抓取微信文章.mp4 │ 课时19:使用Redis+Flask维护动态Cookies池.mp4 │ ...
本书共8章,涵盖的内容有Python语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器。本书所有源...
本书共10章,涵盖的内容有Python3.6语言的基本语法、Python常用IDE的使用、Python第三方模块的导入使用、Python爬虫常用模块、Scrapy爬虫、Beautiful Soup爬虫、Mechanize模拟浏览器和Selenium模拟浏览器、Pyspider...
Selenium: Selenium 是一个自动化测试工具,可以用于模拟浏览器行为,支持执行 JavaScript 和处理动态网页。对于需要JavaScript渲染的网站,Selenium 是一个强大的选择。 Pyquery: Pyquery 是类似于 jQuery 的库...
此资源仅供学习用途,当前selenium都是基于无头模式的firefox或者chrome等浏览器进行爬虫抓取,天眼查的反爬技术算是很不错的,仅仅用于个人学习用,并不可以进行大数据的爬取 技术: python selenium 爬虫 模拟登陆...
实战维度:以实战为导向,是本书的主旨,除了完全通过手动编程实现网络爬虫和通过Scrapy框架实现网络爬虫的实战案例以外,本书还有博客爬取、图片爬取、模拟登录等多个综合性的网络爬虫实践案例。 作者在Python领域...
宽带爬虫工具是一种用于网络爬虫的软件工具,它可以通过模拟浏览器行为,自动化地访问网站并抓取网页内容。它可以帮助用户快速地获取大量的网页数据,用于数据分析、挖掘和建模等应用。 宽带爬虫工具通常具有以下...
Selenium:Selenium是一个用于自动化浏览器的工具,可以模拟用户在浏览器上的操作,并对动态加载的内容进行抓取。适合处理JavaScript渲染等动态页面。 Celery:Celery是一个分布式任务队列框架,可用于将爬虫任务...
首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫 当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://www.lining0806.com/,你就会看到宁...
包括浏览器抓包,手机APP抓包,如 fiddler、mitmproxy,各种爬虫涉及的模块的使用,如:requests、beautifulSoup、selenium、appium、scrapy等,以及IP代理,验证码识… 爬虫(Web Crawler)是一种自动化程序,用于...
首先,让我们从最基础的部分开始,python爬虫的原理是模拟浏览器发送请求,通过检索和提取目标网页中的数据。这个过程中,你需要用到实用的python库,比如beautifulsoup、scrapy等,它们可以帮助你高效地处理网络...
爬虫技术是通过模拟浏览器行为,自动化地访问网站并抓取网 页源代码,然后从中提取需要的内容。其原理主要包括以下几个 步骤: 1. 发送 HTTP 请求:根据需要抓取的数据,发送 HTTP 请求到 目标网站。 2. 解析 HTML:...
请求可以包含额外的headers等信息,以模拟浏览器行为。发送请求后,等待服务器响应。 获取响应内容: 服务器响应后,会得到一个包含所需数据的Response。这些数据可能是HTML、JSON字符串、二进制数据(如图片、...
crawl_web_info #一:答题王辅助: 主要功能:知乎答题王等答题游戏的基本辅助...主要功能:模拟浏览器请求知乎并爬取知乎粉丝信息,然后保存到本地文件 #八:爬取百度图片: 主要功能:分页打包百度图片到并保存到本地