├── README.md ├── run_spider.py ├── scrapy.cfg └── weixin ├── __init__.py ├── __pycache__ ├── __init__.cpython-35.pyc ├── ip_pool.cpython-35.pyc ├── items.cpython-35.pyc ├── middlewares.cpython-35.pyc ├── pipelines.cpython-35.pyc ├── settings.cpython-35.pyc └── useragents.cpython-35.pyc ├── ip_pool.py ├── items.py ├── middlewares.py ├── pipelines.py ├── settings.py ├── spiders ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-35.pyc │ └── wx.cpython-35.pyc └── wx.py └── useragents.py /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/README.md -------------------------------------------------------------------------------- /run_spider.py: -------------------------------------------------------------------------------- 1 | from scrapy import cmdline 2 | cmdline.execute('scrapy crawl wx'.split()) -------------------------------------------------------------------------------- /scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # https://scrapyd.readthedocs.org/en/latest/deploy.html 5 | 6 | [settings] 7 | default = weixin.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = weixin 12 | -------------------------------------------------------------------------------- /weixin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__init__.py -------------------------------------------------------------------------------- /weixin/__pycache__/__init__.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/__init__.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/ip_pool.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/ip_pool.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/items.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/items.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/middlewares.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/middlewares.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/pipelines.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/pipelines.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/settings.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/settings.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/__pycache__/useragents.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/__pycache__/useragents.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/ip_pool.py: -------------------------------------------------------------------------------- 1 | from _datetime import datetime,timedelta 2 | from pymongo import MongoClient 3 | 4 | class mogo_queue(): 5 | 6 | def __init__(self,db,collection,timeout=60): 7 | self.client = MongoClient() 8 | self.database =self.client[db]#链接数据库 9 | self.db = self.database[collection]#链接数据库里面这个表 10 | def find_proxy(self): 11 | proxy_list = [] # 用来接收从数据库查找到的所有代理,返回包含代理的列表 12 | for i in self.db.find(): 13 | proxy = i['proxy'] 14 | proxy_list.append(proxy) 15 | return proxy_list -------------------------------------------------------------------------------- /weixin/items.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your scraped items 4 | # 5 | # See documentation in: 6 | # http://doc.scrapy.org/en/latest/topics/items.html 7 | 8 | import scrapy 9 | 10 | 11 | class WeixinItem(scrapy.Item): 12 | # define the fields for your item here like: 13 | # name = scrapy.Field() 14 | title = scrapy.Field() # 标题 15 | link = scrapy.Field() # 链接 16 | dec = scrapy.Field() # 描述 17 | author = scrapy.Field() # 作者 18 | -------------------------------------------------------------------------------- /weixin/middlewares.py: -------------------------------------------------------------------------------- 1 | import random 2 | from .useragents import agents 3 | from .ip_pool import mogo_queue#导入数据库代理池 4 | from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware 5 | class UserAgentmiddleware(UserAgentMiddleware): 6 | 7 | def process_request(self, request, spider): 8 | agent = random.choice(agents) 9 | request.headers["User-Agent"] = agent 10 | 11 | class ProxyMiddleware1(object): 12 | def __init__(self): 13 | # super(ProxyMiddleware1, self).__init__(settings)继承这里的坑以后再填吧 14 | #HttpProxyMiddleware.__init__(self, settings) 15 | '''类的重载这里我暂时调不好,老是报错,所以只好继承object了''' 16 | # self.ip_pools = [ 17 | # {'ip': '110.73.15.11:8123'}, 18 | # {'ip': '124.88.67.14:80'}, 19 | # {'ip': '42.81.58.198:80'}, 20 | # ] 21 | self.ip_lists = mogo_queue('ip_database', 'proxy_collection')#链接到数据库 22 | self.ip_pools = self.ip_lists.find_proxy()#获得数据库所有代理 23 | def process_request(self, request, spider): 24 | ip = random.choice(self.ip_pools) 25 | print('当前使用的ip:',ip) 26 | #request.meta['proxy'] = 'http://{}'.format(ip['ip']) 27 | request.meta['proxy'] = 'http://{}'.format(ip) 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /weixin/pipelines.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define your item pipelines here 4 | # 5 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 6 | # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html 7 | import pymongo 8 | # from scrapy.conf import settings 9 | 10 | class WeixinPipeline(object): 11 | def __init__(self): 12 | self.client = pymongo.MongoClient() 13 | # self.client.admin.authenticate(settings['MINGO_USER'], settings['MONGO_PSW']) 14 | self.db = self.client['sougou'] 15 | self.collection = self.db['sougou_weixin'] 16 | 17 | def process_item(self, item, spider): 18 | 19 | self.collection.insert(dict(item)) 20 | return item 21 | -------------------------------------------------------------------------------- /weixin/settings.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Scrapy settings for weixin project 4 | # 5 | # For simplicity, this file contains only settings considered important or 6 | # commonly used. You can find more settings consulting the documentation: 7 | # 8 | # http://doc.scrapy.org/en/latest/topics/settings.html 9 | # http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html 10 | # http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html 11 | 12 | BOT_NAME = 'weixin' 13 | 14 | SPIDER_MODULES = ['weixin.spiders'] 15 | NEWSPIDER_MODULE = 'weixin.spiders' 16 | 17 | 18 | # Crawl responsibly by identifying yourself (and your website) on the user-agent 19 | USER_AGENT = "Mozilla/5.0 (Linux; U; Android 1.6; en-us; SonyEricssonX10i Build/R1AA056) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" 20 | # Obey robots.txt rules 21 | ROBOTSTXT_OBEY = False 22 | 23 | # Configure maximum concurrent requests performed by Scrapy (default: 16) 24 | #CONCURRENT_REQUESTS = 32 25 | 26 | # Configure a delay for requests for the same website (default: 0) 27 | # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay 28 | # See also autothrottle settings and docs 29 | #DOWNLOAD_DELAY = 3 30 | # The download delay setting will honor only one of: 31 | #CONCURRENT_REQUESTS_PER_DOMAIN = 16 32 | #CONCURRENT_REQUESTS_PER_IP = 16 33 | 34 | # Disable cookies (enabled by default) 35 | #COOKIES_ENABLED = False 36 | 37 | # Disable Telnet Console (enabled by default) 38 | #TELNETCONSOLE_ENABLED = False 39 | 40 | # Override the default request headers: 41 | #DEFAULT_REQUEST_HEADERS = { 42 | # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 43 | # 'Accept-Language': 'en', 44 | #} 45 | 46 | # Enable or disable spider middlewares 47 | # See http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html 48 | #SPIDER_MIDDLEWARES = { 49 | # 'weixin.middlewares.MyCustomSpiderMiddleware': 543, 50 | #} 51 | 52 | # Enable or disable downloader middlewares 53 | # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html 54 | # 55 | DOWNLOADER_MIDDLEWARES = { 56 | # 'weixin.middlewares.ProxyMiddleware1': 1, 57 | 'weixin.middlewares.UserAgentmiddleware': 400, 58 | 'weixin.middlewares.ProxyMiddleware1': 100, 59 | } 60 | # Enable or disable extensions 61 | # See http://scrapy.readthedocs.org/en/latest/topics/extensions.html 62 | #EXTENSIONS = { 63 | # 'scrapy.extensions.telnet.TelnetConsole': None, 64 | #} 65 | 66 | # Configure item pipelines 67 | # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html 68 | ITEM_PIPELINES = { 69 | 'weixin.pipelines.WeixinPipeline': 300, 70 | } 71 | 72 | # Enable and configure the AutoThrottle extension (disabled by default) 73 | # See http://doc.scrapy.org/en/latest/topics/autothrottle.html 74 | #AUTOTHROTTLE_ENABLED = True 75 | # The initial download delay 76 | #AUTOTHROTTLE_START_DELAY = 5 77 | # The maximum download delay to be set in case of high latencies 78 | #AUTOTHROTTLE_MAX_DELAY = 60 79 | # The average number of requests Scrapy should be sending in parallel to 80 | # each remote server 81 | #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 82 | # Enable showing throttling stats for every response received: 83 | #AUTOTHROTTLE_DEBUG = False 84 | 85 | # Enable and configure HTTP caching (disabled by default) 86 | # See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings 87 | #HTTPCACHE_ENABLED = True 88 | #HTTPCACHE_EXPIRATION_SECS = 0 89 | #HTTPCACHE_DIR = 'httpcache' 90 | #HTTPCACHE_IGNORE_HTTP_CODES = [] 91 | #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage' 92 | 93 | 94 | MONGODB_HOST = '127.0.0.1' 95 | MONGODB_POST = 27017 96 | MONGODB_DBNAME = 'sougou' 97 | MONGODB_DOCNAME = 'sougou_weixin' -------------------------------------------------------------------------------- /weixin/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /weixin/spiders/__pycache__/__init__.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/spiders/__pycache__/__init__.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/spiders/__pycache__/wx.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaobeibei26/weixin_spider/0b1244e7dd7a475d8c32e95b2a5bb77ba09c3eb4/weixin/spiders/__pycache__/wx.cpython-35.pyc -------------------------------------------------------------------------------- /weixin/spiders/wx.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import scrapy 3 | from scrapy import Request 4 | from weixin.items import WeixinItem 5 | 6 | class WxSpider(scrapy.Spider): 7 | name = "wx" 8 | allowed_domains = ["sogou.com"] 9 | start_urls = ['http://sogou.com/'] 10 | 11 | def parse(self, response,): 12 | 13 | key = 'python' 14 | # for i in range(1, 11): 15 | for i in range(3, 4): 16 | url = 'http://weixin.sogou.com/weixin?query=' + key + '&type=2&page=' + str(i) 17 | yield Request(url=url, callback=self.get_content) 18 | 19 | def get_content(self, response): 20 | print(response.text) 21 | lis = response.xpath('//div[@class="news-box"]//li') 22 | for li in lis: 23 | item = WeixinItem() 24 | s_title = "" 25 | box_title = li.xpath('.//div[@class="txt-box"]/h3/a//text()').extract() 26 | for tt in box_title: 27 | s_title = s_title + tt 28 | s_title = s_title.replace(' ', '').replace('\n', '') 29 | 30 | item['title'] = s_title 31 | box_url = li.xpath('.//div[@class="txt-box"]/h3/a/@href')[0].extract() 32 | 33 | item['link'] = box_url 34 | s_info = "" 35 | box_info = li.xpath('.//p[@class="txt-info"]//text()').extract() 36 | for ii in box_info: 37 | s_info = s_info + ii 38 | s_info = s_info.replace(' ', '').replace('\n', '') 39 | 40 | item['dec'] = s_info 41 | box_s_p = li.xpath('.//div[@class="txt-box"]/div[@class="s-p"]/a/text()')[0].extract() 42 | item['author'] = box_s_p 43 | print(item) 44 | yield item 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /weixin/useragents.py: -------------------------------------------------------------------------------- 1 | agents = [ 2 | "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 3 | "Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)", 4 | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5", 5 | "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.310.0 Safari/532.9", 6 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7", 7 | "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14", 8 | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14", 9 | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", 10 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27", 11 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", 12 | "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2", 13 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", 14 | "Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre", 15 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10", 16 | "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)", 17 | "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB5", 18 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)", 19 | "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", 20 | "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", 21 | "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0", 22 | "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110622 Firefox/6.0a2", 23 | "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1", 24 | "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100815 Minefield/4.0b4pre", 25 | "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )", 26 | "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)", 27 | "Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a", 28 | "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko Netscape/7.1 (ax)", 29 | "HTC_Dream Mozilla/5.0 (Linux; U; Android 1.5; en-ca; Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 30 | "Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.2; U; de-DE) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.40.1 Safari/534.6 TouchPad/1.0", 31 | "Mozilla/5.0 (Linux; U; Android 1.5; en-us; sdk Build/CUPCAKE) AppleWebkit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 32 | "Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 33 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 34 | "Mozilla/5.0 (Linux; U; Android 1.5; en-us; htc_bahamas Build/CRB17) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 35 | "Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 36 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 37 | "Mozilla/5.0 (Linux; U; Android 1.5; de-ch; HTC Hero Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 38 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; ADR6300 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 39 | "Mozilla/5.0 (Linux; U; Android 2.1; en-us; HTC Legend Build/cupcake) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 40 | "Mozilla/5.0 (Linux; U; Android 1.5; de-de; HTC Magic Build/PLAT-RC33) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 FirePHP/0.3", 41 | "Mozilla/5.0 (Linux; U; Android 1.6; en-us; HTC_TATTOO_A3288 Build/DRC79) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 42 | "Mozilla/5.0 (Linux; U; Android 1.0; en-us; dream) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2", 43 | "Mozilla/5.0 (Linux; U; Android 1.5; en-us; T-Mobile G1 Build/CRB43) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari 525.20.1", 44 | "Mozilla/5.0 (Linux; U; Android 1.5; en-gb; T-Mobile_G2_Touch Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 45 | "Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 46 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Droid Build/FRG22D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 47 | "Mozilla/5.0 (Linux; U; Android 2.0; en-us; Milestone Build/ SHOLS_U2_01.03.1) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 48 | "Mozilla/5.0 (Linux; U; Android 2.0.1; de-de; Milestone Build/SHOLS_U2_01.14.0) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 49 | "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2", 50 | "Mozilla/5.0 (Linux; U; Android 0.5; en-us) AppleWebKit/522 (KHTML, like Gecko) Safari/419.3", 51 | "Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2", 52 | "Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 53 | "Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17", 54 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 55 | "Mozilla/5.0 (Linux; U; Android 2.2; en-us; ADR6300 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 56 | "Mozilla/5.0 (Linux; U; Android 2.2; en-ca; GT-P1000M Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 57 | "Mozilla/5.0 (Linux; U; Android 3.0.1; fr-fr; A500 Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13", 58 | "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2", 59 | "Mozilla/5.0 (Linux; U; Android 1.6; es-es; SonyEricssonX10i Build/R1FA016) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 60 | "Mozilla/5.0 (Linux; U; Android 1.6; en-us; SonyEricssonX10i Build/R1AA056) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1", 61 | ] --------------------------------------------------------------------------------