分类爬虫下的文章

admin 发布于 04月22, 2017

phantomjs设置IP代理

phantomjs 设置IP代理

phantomjs 可通过以下设置代理ip

#coding=utf-8
import os
import re
import time
import requests
from scrapy.selector import HtmlXPathSelector
from scrapy.http import HtmlResponse
from selenium import webdriver
from selenium.webdriver.common.proxy import ProxyType

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

import warnings
warnings.filterwarnings("ignore")

if __name__ == '__main__':
PATH_PHANTOMJS=r'D:\phantomjs\bin\phantomjs.exe'
browser=webdriver.PhantomJS(PATH_PHANTOMJS)
#真实ip
browser.get('http://icanhazip.com/') #获取ip网址
response = HtmlResponse(url='',body=str(browser.page_source))
hxs = HtmlXPathSelector(response)
print 'your ip is:',''.join(hxs.select('//text()').extract()).strip()
#代理ip
proxy=webdriver.Proxy()
proxy.proxy_type=ProxyType.MANUAL
proxy.http_proxy='220.248.229.45:3128'
#将代理设置添加到webdriver.DesiredCapabilities.PHANTOMJS中
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
browser.get('http://icanhazip.com/') #获取ip网址
response = HtmlResponse(url='',body=str(browser.page_source))
hxs = HtmlXPathSelector(response)
print 'your proxy ip is:',''.join(hxs.select('//text()').extract()).strip()

阅读全文 »

admin 发布于 04月21, 2017

spynner安装

spynner安装

spynner安装过程有很多坑, 这里罗列一下,免得再掉进坑里

  • 依赖autopy,且必须在python win32版本上安装,不能用64位
  • autopy不能用conda安装 , 安装步骤

  • PyQt4得用conda安装,可以省很多麻烦

  • spynner本身也能用conda安装

阅读全文 »

admin 发布于 04月19, 2017

spynner解析中文页面显示?号

spynner解析中文页面显示?号

这个是底层的QtWebKit相关库里 用的是Qt的QString spynner在将QString转为Python的通用字符串时,没有考虑到中文编码这一块的问题。 原创声明:我这两天抓取动态页面,也遇到这个问题,通过调试发现是QString问题后从google找到了QString的正确转换方法。 你把Python27\Lib\site-packages\spynner\browser.py 下的函数 (大概是477行)

def _get_html(self):
    return six.u(self.webframe.toHtml())

改成下面这样

def _get_html(self):
    return  unicode(self.webframe.toHtml().toUtf8(), 'utf-8', 'ignore')

阅读全文 »

admin 发布于 04月08, 2017

一致性哈希环在消息队列/缓存中应用原理

一致性(consistent hash ring)哈希环在消息队列/缓存中应用原理

在分布式爬虫框架内实现了一个简单的消息队列,中间使用到哈希环做多点数据备份和读取,与memcache原理相同。

一致性哈希环在使用过程中有两个关键点需要注意。

  • 一个是保证哈希的一致性,即无论在哪台机器上,对于同一个输入,都有相同的哈希输出。这是保证哈希环能进行负载均衡及保证增删稳定的基础。
  • 另外一点是均匀多点分布,多点均匀分布,是指,每个服务器对应到哈希环上的多个点,这样做的目的是为了某一台服务挂掉以后,他的任务会被分配到多台服务器上,避免出现连锁反应。导致整个集群的失败。

一致性哈希环存在的问题:分配不均衡

解决方案: 虚拟节点(找下一个节点,为什么不用就近原则去找,因为就近的原则还是不能均衡的)

阅读全文 »

admin 发布于 03月30, 2017

搜索引擎爬虫蜘蛛的USERAGENT大全

搜索引擎爬虫蜘蛛的USERAGENT大全

搜索引擎爬虫蜘蛛的USERAGENT收集,方便制网络爬虫的朋友。

百度爬虫

google爬虫

雅虎爬虫(分别是雅虎中国和美国总部的爬虫)

Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html”) Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp”)

新浪爱问爬虫

iaskspider/2.0(+http://iask.com/help/help_index.html”) Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)

搜狗爬虫

Sogou web spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″) Sogou Push Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)

网易爬虫

*Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/”; )

MSN爬虫

*msnbot/1.0 (+http://search.msn.com/msnbot.htm”)

阅读全文 »