From 58352474f82f370e72775d805b3de0d96de4a735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=9C=E4=BF=8A=E6=9D=B0?= <1599121712@qq.com> Date: Thu, 27 Feb 2020 21:33:19 +0800 Subject: [PATCH] =?UTF-8?q?:beers:=20[feat]=E6=B7=98=E5=AE=9D=E5=85=8Dcook?= =?UTF-8?q?ie=E7=AD=96=E7=95=A5=EF=BC=88=E5=8F=AF=E9=80=82=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E9=98=BF=E9=87=8C=E5=85=A8=E7=B3=BB=E8=87=AA=E4=B8=BB?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 淘宝免cookie策略,可实现阿里全系自主平台爬取 --- OthertCrawler/0x17zhihu/readme.md | 0 README.md | 39 +- TaobaoCrawler(new)/README.md | 74 ++ TaobaoCrawler(new)/config.py | 51 ++ TaobaoCrawler(new)/main.py | 156 +++++ TaobaoCrawler(new)/pictures/JosephNest.jpg | Bin 0 -> 39918 bytes TaobaoCrawler(new)/pictures/mortaltiger.jpg | Bin 0 -> 39062 bytes TaobaoCrawler(new)/save_csv.py | 30 + TaobaoCrawler(new)/save_mysql.py | 6 + TaobaoCrawler(new)/save_mysql_redis.py | 7 + TaobaoCrawler(new)/test/get_sign.py | 19 + ...\350\241\250\347\244\272\344\276\213.json" | 631 +++++++++++++++++ ...\346\236\234\347\244\272\344\276\213.json" | 634 ++++++++++++++++++ ...3\346\236\234\347\244\272\344\276\213.txt" | 32 + .../test/postman\346\265\213\350\257\225.py" | 12 + WeiboCrawler/search_word/search_by_db.py | 2 +- 16 files changed, 1674 insertions(+), 19 deletions(-) create mode 100644 OthertCrawler/0x17zhihu/readme.md create mode 100644 TaobaoCrawler(new)/README.md create mode 100644 TaobaoCrawler(new)/config.py create mode 100644 TaobaoCrawler(new)/main.py create mode 100644 TaobaoCrawler(new)/pictures/JosephNest.jpg create mode 100644 TaobaoCrawler(new)/pictures/mortaltiger.jpg create mode 100644 TaobaoCrawler(new)/save_csv.py create mode 100644 TaobaoCrawler(new)/save_mysql.py create mode 100644 TaobaoCrawler(new)/save_mysql_redis.py create mode 100644 TaobaoCrawler(new)/test/get_sign.py create mode 100644 "TaobaoCrawler(new)/test/json\344\270\255\346\217\220\345\217\226\345\210\227\350\241\250\347\244\272\344\276\213.json" create mode 100644 "TaobaoCrawler(new)/test/json\347\273\223\346\236\234\347\244\272\344\276\213.json" create mode 100644 "TaobaoCrawler(new)/test/json\347\273\223\346\236\234\347\244\272\344\276\213.txt" create mode 100644 "TaobaoCrawler(new)/test/postman\346\265\213\350\257\225.py" diff --git a/OthertCrawler/0x17zhihu/readme.md b/OthertCrawler/0x17zhihu/readme.md new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 48aafbd..84df224 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ 对于精通爬虫的pyer,这将是一个很好的例子减少重复收集轮子的过程。项目经常更新维护,确保即下即用,减少爬取的时间。 对于小白通过✍️实战项目,了解爬虫的从无到有。爬虫知识构建可以移步[项目wiki](https://github.com/DropsDevopsOrg/ECommerceCrawlers/wiki/%E7%88%AC%E8%99%AB%E5%88%B0%E5%BA%95%E8%BF%9D%E6%B3%95%E5%90%97%3F)。爬虫可能是一件非常复杂、技术门槛很高的事情,但掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现,但建议从一开始就要有一个具体的目标。 - + 在目标的驱动下,你的学习才会更加精准和高效。那些所有你认为必须的前置知识,都是可以在完成目标的过程中学到的😁😁😁。 - + 欢迎大家对本项目的不足加以指正,⭕️Issues或者🔔Pr >在之前上传的大文件贯穿了3/4的commits,发现每次clone达到100M,这与我们最初的想法违背,我们不能很有效的删除每一个文件(太懒),将重新进行初始化仓库的commit。并在今后不上传爬虫数据,优化仓库结构。 @@ -31,23 +31,25 @@ 收益表 -|项目|收益|备注| -|:--|--:|:-:| -|DianpingCrawler|200| -|TaobaoCrawler|2000| -|SohuNewCrawler|2500| -|WechatCrawler|未定|暂无具体收益| -|某省药监局|80| -|fofa|700| -|baidu|1000| -|蜘蛛泛目录|1000| -|更多……|……|另部分程序未得到客户开源认可| +| 项目 | 收益 | 备注 | +| :-------------- | ---: | :--------------------------: | +| DianpingCrawler | 200 | +| TaobaoCrawler | 2000 | +| SohuNewCrawler | 2500 | +| WechatCrawler | 未定 | 暂无具体收益 | +| 某省药监局 | 80 | +| fofa | 700 | +| baidu | 1000 | +| 蜘蛛泛目录 | 1000 | +| 更多…… | …… | 另部分程序未得到客户开源认可 | ## CrawlerDemo + - [x] [DianpingCrawler](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/DianpingCrawler):大众点评爬取 - [x] [East_money](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/East_money):scrapy爬取东方财富网 +- [x] [📛TaobaoCrawler(new)](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/TaobaoCrawler(new)):阿里系全自主平台(淘宝、天猫、咸鱼、菜鸟裹裹等)信息爬取 免cookie, 理论上不被反爬虫机制(只提供淘宝,其他思路一样,加密方式一样), - [x] [📛TaobaoCrawler](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/TaobaoCrawler):淘宝商品爬取 - [x] [📛ZhaopinCrawler](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/ZhaopinCrawler):各大招聘网站爬取 - [x] [ShicimingjuCrawleAndDisplayr](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/ShicimingjuCrawleAndDisplay):诗词名家句网站爬取展示 @@ -73,11 +75,12 @@ - [x] [0x13 豆瓣影评分析](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/OthertCrawler/0x13douban_yingping) - [x] [0x14 协程评论爬取](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/OthertCrawler/0x14ctrip_crawler) - [x] [0x15 小米应用商店爬取](https://github.com/DropsDevopsOrg/ECommerceCrawlers/tree/master/OthertCrawler/0x15xiaomiappshop) + ## Contribution👏 -|@Joynice|@liangweiyang|@Hatcat123|@jihu9|@ctycode| -|:-:|:-:|:-:|:-:|:-:| -|[Joynice](https://github.com/Joynice)|[liangweiyang](https://github.com/liangweiyang)|[Hatcat123](https://github.com/Hatcat123)|[jihu9](https://github.com/jihu9)|[ctycode](https://github.com/ctycode)| +|@joseph31|@Joynice|@liangweiyang|@Hatcat123|@jihu9|@ctycode| +|:-:|:-:|:-:|:-:|:-:|:-:| +|[joseph31](https://gitee.com/joseph31)|[Joynice](https://github.com/Joynice)|[liangweiyang](https://github.com/liangweiyang)|[Hatcat123](https://github.com/Hatcat123)|[jihu9](https://github.com/jihu9)|[ctycode](https://github.com/ctycode)| > wait for you @@ -108,7 +111,7 @@ - [x] txt文本 - [x] csv - [x] excel - - [ ] mysql + - [x] mysql - [x] redis - [x] mongodb - 反爬验证 @@ -123,7 +126,7 @@ - [x] 多进程 - [x] 异步协成 - [x] 生产者消费者多线程 - - [ ] 分布式爬虫系统 + - [x] 分布式爬虫系统 > *链接标识官方文档或推荐例子* diff --git a/TaobaoCrawler(new)/README.md b/TaobaoCrawler(new)/README.md new file mode 100644 index 0000000..45d4fd5 --- /dev/null +++ b/TaobaoCrawler(new)/README.md @@ -0,0 +1,74 @@ +# 说明 + +## 进度说明 + +- 本程序设计思路对阿里系自主平台(如:淘宝 taobao、天猫 tmall、闲鱼、菜鸟裹裹等平台均有效),此处提供 淘宝 taobao 的程序 + +- 已完成 + + 1. 整体框架设计 + 2. 搜索页面 csv 存储 + 3. 多线程 + +- 未完成 + 1. 详情页面 csv 存储 + 2. 搜索页面 mysql 存储 + 3. 详情页面 mysql 存储 + 4. 搜索页面与详情页面同时爬取, mysql + redis 存储 + +## 使用方法 + +1. 在 `config.py` 文件中根据需要配置 +2. 运行 `python3 main.py` + +## 思路 + +1. 生产-消费 模式 +2. 各功能单独建文件 +3. 多线程 +4. 数据库: csv \ redis \ mysql + +## 阿里系自主平台(非收购)cookie 自动配置策略 + +1. 第一次无 cookie 请求,返回 cookie +2. 从返回的 cookie 提取 token 并计算 sign(token, timestamp, appKey, data),拼接新的 url +3. 第二次带返回的 cookie 请求 url,得到结果 + +- 注: + 1. cookie、token 有效期为 30 天,sign 有效期为 1 小时 + 2. 理论上:只要一个小时跟换一次时间戳、重新计算一次 sign 即可,不断重复第二次请求 + 3. 实践中:一小时更换一次有被反爬虫风险;可用 30 秒隧道代理,每次都重复第一步生成新 cookie(效率极高,时间可忽略),理论上无反爬虫风险 + 4. 程序中对第一次请求 url 固定(不影响程序),若以后能从 js 文件中看懂其生成机制,则可改为每次自动生成 + +## taobao 入口 + +http://uland.taobao.com/sem/tbsearch?keyword=XXX + +把最后的 XXX 换成您要搜索的内容即可 + +(用以第一步请求,得到真正的请求地址,程序中已经配置,不用管) + +## Tmall 入口 + +http://www.tmall.com/ + +(用以第一步请求,得到真正的请求地址,程序中已经配置,不用管) + +## mysql 表结构 + +## 关于作者 + +本人从事 `大数据`、`数据分析` 工作,欢迎各位大牛叨扰~ + +- github : [https://github.com/SoliDeoGloria31](https://github.com/SoliDeoGloria31) + +- 码云 Gitee : [https://gitee.com/joseph31](https://gitee.com/joseph31) + +- 微信 : mortaltiger + + + +- 个人公众号: JosephNest(Joseph 的小窝) + 经常测试新功能导致服务器不稳定,可能会出故障, 实现`自动推荐系统`、`自动回复功能`、`需求留言功能`、`人工智能集成(图片识别)`、`其他功能定制` + + diff --git a/TaobaoCrawler(new)/config.py b/TaobaoCrawler(new)/config.py new file mode 100644 index 0000000..04d2e9b --- /dev/null +++ b/TaobaoCrawler(new)/config.py @@ -0,0 +1,51 @@ +# 搜索配置 +# 搜索内容 +str_searchContent = 'iPhone Xs' +# 每页显示数量 +num_pageSize = 100 +# 从第一页 至 第几页(理论上可穷尽阿里服务器),推荐填入 1~100 ,页数再大则显示的内容匹配度不足 +num_page = 2 +# 阿里服务编号,12574478 固定不要更改,如菜鸟裹裹为 12574478 固定 +appKey = '12574478' # 不要更改!!! + +########################################### +# 爬取内容设置 + +# 开启线程数 +threads_num_get_pages = 1 # 抓取搜素页的线程数, 默认为 1 +threads_num_get_comments = 3 # 抓取评论页的线程数,当为 0 时,不抓取详情页面(评论) + +########################################### +# 储存 +switch_save = 0 # 本地 csv 存储 +# switch_save = 1 # mysql 存储 +# switch_save = 2 # mysql + redis 存储 + +# redis +redis_host = '127.0.0.1' +redis_port = 6379 + +# mysql +mysql_host = '127.0.0.1' +mysql_port = 3306 +mysql_user = 'root' +mysql_passwd = '123456' +mysql_db = 'taobao' +mysql_charset = 'utf8' + +########################################### +# 代理设置 +# 隧道服务器 +_tunnel_host = "tps189.kdlapi.com" +_tunnel_port = "15818" + +# 隧道用户名密码 +_tid = "t17888082960619" +_password = "gid72p4o" + +proxies = { + "http": "http://%s:%s@%s:%s/" % (_tid, _password, _tunnel_host, _tunnel_port), + "https": "https://%s:%s@%s:%s/" % (_tid, _password, _tunnel_host, _tunnel_port) +} + +########################################### diff --git a/TaobaoCrawler(new)/main.py b/TaobaoCrawler(new)/main.py new file mode 100644 index 0000000..8b3cb7f --- /dev/null +++ b/TaobaoCrawler(new)/main.py @@ -0,0 +1,156 @@ +# encoding: utf-8 + +from config import * +import requests +import hashlib +import time +from urllib.parse import quote +import threading + + +class TaoBao: + def __init__(self, str_searchContent, num_pageSize, num_page, appKey, threads_num_get_pages, threads_num_get_comments, switch_save, proxies): + self.str_searchContent = str_searchContent + self.num_pageSize = num_pageSize + self.num_page = num_page + self.appKey = appKey + self.threads_num_get_pages = threads_num_get_pages + self.threads_num_get_comments = threads_num_get_comments + self.switch_save = switch_save + self.proxies = proxies + self.cookie = '' + self.token = '' + self.file_name = '' + self.L_itemId = [] + + self.run() + + def first_requests(self): + # 第一次请求,无cookie请求,获取cookie + base_url = 'https://h5api.m.taobao.com/h5/mtop.alimama.union.sem.landing.pc.items/1.0/?jsv=2.4.0&appKey=12574478&t=1582738149318&sign=fe2cf689bdac8258a1d12507a06bd289&api=mtop.alimama.union.sem.landing.pc.items&v=1.0&AntiCreep=true&dataType=jsonp&type=jsonp&ecode=0&callback=mtopjsonp1&data=%7B%22keyword%22%3A%22%E8%8B%B9%E6%9E%9C%E6%89%8B%E6%9C%BA%22%2C%22ppath%22%3A%22%22%2C%22loc%22%3A%22%22%2C%22minPrice%22%3A%22%22%2C%22maxPrice%22%3A%22%22%2C%22ismall%22%3A%22%22%2C%22ship%22%3A%22%22%2C%22itemAssurance%22%3A%22%22%2C%22exchange7%22%3A%22%22%2C%22custAssurance%22%3A%22%22%2C%22b%22%3A%22%22%2C%22clk1%22%3A%22%22%2C%22pvoff%22%3A%22%22%2C%22pageSize%22%3A%22100%22%2C%22page%22%3A%22%22%2C%22elemtid%22%3A%221%22%2C%22refpid%22%3A%22%22%2C%22pid%22%3A%22430673_1006%22%2C%22featureNames%22%3A%22spGoldMedal%2CdsrDescribe%2CdsrDescribeGap%2CdsrService%2CdsrServiceGap%2CdsrDeliver%2C%20dsrDeliverGap%22%2C%22ac%22%3A%22%22%2C%22wangwangid%22%3A%22%22%2C%22catId%22%3A%22%22%7D' + try: + with requests.get(base_url) as response: + get_cookies = requests.utils.dict_from_cookiejar( + response.cookies) + _m_h5_tk = get_cookies['_m_h5_tk'] + _m_h5_tk_enc = get_cookies['_m_h5_tk_enc'] + self.token = _m_h5_tk.split('_')[0] + self.cookie = '_m_h5_tk={}; _m_h5_tk_enc={}'.format( + _m_h5_tk, _m_h5_tk_enc) + except Exception as e: + print('first_requests 出错: ', e) + + def sign(self, token, tme, appKey, data): + st = token+"&"+tme+"&"+appKey+"&"+data + m = hashlib.md5(st.encode(encoding='utf-8')).hexdigest() + return(m) + + def second_requests(self): + # 第二次带cookie请求,返回数据并存储 + searchContent = '"sc"'.replace('sc', self.str_searchContent) + pageSize = '"ps"'.replace('ps', str(self.num_pageSize)) # 每页结果属 + page = '"p"'.replace('p', str(self.num_page)) # 第几页 + + str_data = '{"keyword":'+searchContent+',"ppath":"","loc":"","minPrice":"","maxPrice":"","ismall":"","ship":"","itemAssurance":"","exchange7":"","custAssurance":"","b":"","clk1":"","pvoff":"","pageSize":'+pageSize+',"page":' + \ + page+',"elemtid":"1","refpid":"","pid":"430673_1006","featureNames":"spGoldMedal,dsrDescribe,dsrDescribeGap,dsrService,dsrServiceGap,dsrDeliver, dsrDeliverGap","ac":"","wangwangid":"","catId":""}' + data = quote(str_data, 'utf-8') + + tme = str(time.time()).replace('.', '')[0:13] + + sgn = self.sign(self.token, tme, self.appKey, str_data) + + url = 'https://h5api.m.taobao.com/h5/mtop.alimama.union.sem.landing.pc.items/1.0/?jsv=2.4.0&appKey={}&t={}&sign={}&api=mtop.alimama.union.sem.landing.pc.items&v=1.0&AntiCreep=true&dataType=jsonp&type=jsonp&ecode=0&callback=mtopjsonp2&data={}'.format( + appKey, tme, sgn, data) + + headers = {'cookie': self.cookie} # 未使用proxies + try: + with requests.get(url, headers=headers) as res: + html = res.text + + res_str = html.split( + '"mainItems":')[-1].split('},"ret":')[0].replace('true', '"true"').replace('false', '"false"') + res_list = eval(res_str) + if self.switch_save == 0: + self.switch_save_0(res_list) + elif self.switch_save == 1: + self.switch_save_1(res_list) + elif self.switch_save == 2: + self.switch_save_2(res_list) + else: + print('config.py 文件中存储部分设置有误!') + except Exception as e: + print('second_requests 出错: ', e) + + def switch_save_0(self, res_list): + from save_csv import save_csv + csv_file_name = self.file_name+'.csv' + # 返回该页面所有的 itemId 存入 L_itemId 列表中 + self.L_itemId += save_csv(res_list, csv_file_name) + print('\n爬取项目数目: ', len(self.L_itemId)) + + def switch_save_1(self, res_list): + from save_mysql import save_mysql + save_mysql(res_list) + + def switch_save_2(self, res_list): + from save_mysql_redis import save_mysql_redis + save_mysql_redis(res_list) + + def get_search_page(self): + print('搜索页面 线程启动: ', threading.current_thread().name) + for i in range(1, self.num_page+1): + self.first_requests() # 可以在此调整获取cookie的频率 + self.second_requests() + print('完成第 {} 页爬取\n====================\n'.format(i)) + + def get_comments_page(self): + print('评论页面 线程启动: ', threading.current_thread().name) + time.sleep(5) + n = 3 # 三次请求 self.L_itemId 无返回, 则认为所有数据爬取完毕 + while True: + if n == 0: + break + try: + itemId = self.L_itemId.pop(0) + self.get_comments(itemId) + n = 3 + except Exception as e: + n -= 1 + time.sleep(5) + + def get_comments(self, itemId): + pass + + def run(self): + tme = str(time.time()).replace('.', '')[0:13] + self.file_name = '搜索页面'+'_'+self.str_searchContent+'_' + str(self.num_pageSize)+'_' + str( + self.num_page)+'_'+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(tme[:10]))).replace(' ', '_').replace(':', '_') + + threads = [] + # 一条线程爬取搜索页面 + if self.threads_num_get_pages != 1: + print('请在 config.py 文件中 设置 threads_num_get_pages = 1') + thread0 = threading.Thread(target=self.get_search_page, args=()) + threads.append(thread0) + + # 新建线程爬取详情页面 + if self.threads_num_get_comments: + for i in range(self.threads_num_get_comments): + thread = threading.Thread( + target=self.get_comments_page, args=()) + threads.append(thread) + + # 启动多线程 + for t in threads: + t.start() + + for t in threads: + t.join() + print('关闭线程: ', t.name) + + print('主线程结束!', threading.current_thread().name) + + +if __name__ == "__main__": + TaoBao(str_searchContent, num_pageSize, num_page, appKey, + threads_num_get_pages, threads_num_get_comments, switch_save, proxies) diff --git a/TaobaoCrawler(new)/pictures/JosephNest.jpg b/TaobaoCrawler(new)/pictures/JosephNest.jpg new file mode 100644 index 0000000000000000000000000000000000000000..278ae6373680e94699a06235b4fa2deb633e3164 GIT binary patch literal 39918 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 F{{Sob7Dxa9 literal 0 HcmV?d00001 diff --git a/TaobaoCrawler(new)/pictures/mortaltiger.jpg b/TaobaoCrawler(new)/pictures/mortaltiger.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9a791fb15758b47aba38459707c741259d19392 GIT binary patch literal 39062 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