吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2664字,纯文字阅读大概需要4分钟。
内容图文
![吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化)](/upload/InfoBanner/zyjiaocheng/647/67c78ebd762c44528733dd3e36d3696d.jpg)
本博文主要是对我的这篇:https://www.cnblogs.com/tszr/p/12193744.html爬取某一大型电商网站的商品数据博文代码的优化和整理。
代码优化可以提高代码的可读性。
import time import json import pymongo import requests import urllib.request #使用MongoDB创建数据库、表 client = pymongo.MongoClient('localhost',27017) book_qunar = client['qunarr'] sheet_qunar_zyx = book_qunar['qunar_zyxx'] def get_list(dep,item): url = 'https://touch.dujia.qunar.com/list?modules=list%2CbookingInfo%2CactivityDetail&dep={}&query={}&dappDealTrace=true&mobFunction=%E6%89%A9%E5%B1%95%E8%87%AA%E7%94%B1%E8%A1%8C&cfrom=zyx&it=dujia_hy_destination&date=&needNoResult=true&originalquery={}&limit=0,24&includeAD=true&qsact=search'.format(urllib.request.quote(dep),urllib.request.quote(item),urllib.request.quote(item)) time.sleep(3) strhtml = requests.get(url) #获取当前目的地的产品数量 routeCount = int(strhtml.json()['data']['limit']['routeCount']) for limit in range(0,routeCount,24): url = 'https://touch.dujia.qunar.com/list?modules=list%2CbookingInfo%2CactivityDetail&dep={}&query={}&dappDealTrace=true&mobFunction=%E6%89%A9%E5%B1%95%E8%87%AA%E7%94%B1%E8%A1%8C&cfrom=zyx&it=dujia_hy_destination&date=&needNoResult=true&originalquery={}&limit={},24&includeAD=true&qsact=search'.format(urllib.request.quote(dep),urllib.request.quote(item),urllib.request.quote(item),limit) time.sleep(3) strhtml = requests.get(url) #用一个字典保存当前这个产品的信息 result = { 'date':time.strftime('%Y-%m-%d',time.localtime(time.time())), 'dep':dep, 'arrive':item, 'limit':limit, 'result':strhtml.json() } #向数据库中插入这条产品信息记录 sheet_qunar_zyx.insert_one(result) def get_json(url): strhtml = requests.get(url) time.sleep(3) return strhtml.json() if __name__ == '__main__': #获取产品 url = 'https://touch.dujia.qunar.com/depCities.qunar' strhtml = requests.get(url) dep_dict = strhtml.json() for dep_item in dep_dict['data']: for dep in dep_dict['data'][dep_item]: #这里声明一个列表a用来保存当前这个出发点对应的所有目的地 a = [] url = 'https://touch.dujia.qunar.com/golfz/sight/arriveRecommend?dep={}&exclude=&extensionImg=255,175'.format(urllib.request.quote(dep)) time.sleep(3) strhtml = requests.get(url) arrive_dict = strhtml.json() for arr_item in arrive_dict['data']: for arr_item_1 in arr_item['subModules']: for query in arr_item_1['items']: #如果当前这个目的地不在a中的话,那就添加进去,否则不添加,这样就可以达到目的地去重的目的了 if(query['query'] not in a): a.append(query['query']) #逐个地取出当前出发点对应的目的地item for item in a: get_list(dep,item) #再写一个程序用来定时监控运行结果 while True: print(sheet_qunar_zyx.find().count()) time.sleep(10)
#再写一个程序用来定时监控运行结果(新建一个文件)来运行,记得要导入对应的文件 while True: print(sheet_qunar_zyx.find().count()) time.sleep(10)
内容总结
以上是互联网集市为您收集整理的吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化)全部内容,希望文章能够帮你解决吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。