• 从0开始学爬虫6比价工具开发1之爬取当当、京东的数据


    从0开始学爬虫6比价工具开发1之爬取当当、京东的数据

    爬取当当数据

    spider_dangdang.py

    #coding=utf-8
    
    import requests
    from lxml import html
    def spider(sn):
        """爬取当当网的数据"""
        url = 'http://search.dangdang.com/?key={sn}&act=input'.format(sn = sn)
        # 获取html内容
        html_data = requests.get(url).text
    
        # xpath对象
        selector = html.fromstring(html_data)
    
        # 找到书本列表
        ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
        # print(len(ul_list))
        for li in ul_list:
            # 标题
            title = li.xpath('a/@title')
            print(title[0])
            # 价格
            price = li.xpath('p[@class="price"]/span[@class="search_now_price"]/text()')
            # print(price[0].split('¥')[1])
            print(price[0].replace('¥',''))
            # 购买链接
            link = li.xpath('a/@href')
            print(link[0])
    
            # 商家,如果是当当自营为空
            store = li.xpath('p[@class="search_shangjia"]/a/text()')
            store = '当当自营' if len(store) == 0 else store[0]
            print(store)
    
            print('------------------------------------')
    
    
    if __name__ == "__main__":
        sn = "9787115428028"
        spider(sn)

    运行结果:

    C:Usersws.virtualenvspytoolsScriptspython.exe D:/python/pytools/05spider_dangdang.py
     Python编程 从入门到实践 [美]埃里克・马瑟斯(Eric Matthes) 9787115428028
    48.95
    http://product.dangdang.com/1357228769.html
    北京博远慧达图书专营店
    ------------------------------------
     Python编程 从入门到实践
    62.00
    http://product.dangdang.com/24003310.html
    当当自营
    ------------------------------------
     Python编程从入门到实践+零基础入门学习Python+Python基础教程第三版 Python编程入门书籍全3册P
    237.50
    http://product.dangdang.com/1427665587.html
    博鸿文化图书专营店
    ------------------------------------
     Python Java C 语言从入门到精通三本套计算机核心编程基础教程书籍 零基础自学电脑程序设计开发进阶实践教材
    194.70
    http://product.dangdang.com/1354186099.html
    泊霖文轩图书专营店
    ------------------------------------
     Python Java C 语言从入门到精通三本套计算机核心编程基础教程书籍 零基础自学电脑程序设计开发进阶实践教材
    194.50
    http://product.dangdang.com/1405219788.html
    艺凡图书专营店
    ------------------------------------
     Python编程 从入门到实践[美]埃里克・马瑟斯(Eric Matthes)人民邮电出版社9787115428028
    73.80
    http://product.dangdang.com/1441178788.html
    大石桥新华书店图书专营店
    ------------------------------------
     【原版珍藏9成新原版现货包邮】Python编程 从入门到实践 [美]埃里克・马瑟斯(Eric Matthes) 人民邮
    90.00
    http://product.dangdang.com/1275392779.html
    绿伯然旧书专营店
    ------------------------------------
     python基础教程 零基础学python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网络爬虫书籍
    89.00
    http://product.dangdang.com/1019255314.html
    育博彦图书专营店
    ------------------------------------
     python基础教程 零基础学Python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网络爬虫书籍
    87.00
    http://product.dangdang.com/1115808114.html
    金种子图书专营店
    ------------------------------------
     【赠源代码】Python编程从入门到实践 python3.5绝技核心编程基础教程 网络爬虫入门书籍 python视频编
    138.00
    http://product.dangdang.com/1098372614.html
    育博彦图书专营店
    ------------------------------------
     【套装3本】Python编程从入门到实践+Python核心编程 第3版+Python 3标准库
    380.00
    http://product.dangdang.com/1142763004.html
    阅微阁图书专营店
    ------------------------------------
     Python自学经典套装:Python基础教程 第3版+Python核心编程第3版
    135.00
    http://product.dangdang.com/1414256630.html
    风向图书专营店
    ------------------------------------
     Python基础教程 Python编程从入门到实践 精通python核心编程网络爬虫开发 计算机程序设计python3
    89.00
    http://product.dangdang.com/1502718174.html
    鹰辰文化图书专营店
    ------------------------------------
     python基础教程 零基础学python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网络爬虫书籍
    138.00
    http://product.dangdang.com/1324822717.html
    嘉博致远图书专营店
    ------------------------------------
     【官方】Python编程从入门到实践 python3.5核心编程基础教程快速上手 3.0零基础笨办法学网络爬虫程序设计
    94.93
    http://product.dangdang.com/1340418421.html
    海川信诺图书专营店
    ------------------------------------
     Python编程从入门到实践 精通Python基础教程python核心编程网络爬虫 python数据分析计算机程序设计
    86.00
    http://product.dangdang.com/1142645104.html
    阅微阁图书专营店
    ------------------------------------
     【全2册】Python编程 从入门到实践+笨办法学Python 3 绝技核心编程基础视频教程网络爬虫
    121.40
    http://product.dangdang.com/1353670125.html
    世纪书缘图书专营店
    ------------------------------------
     @畅销书籍 python基础教程 零基础学Python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网
    88.80
    http://product.dangdang.com/1437332330.html
    鑫隆博图书专营店
    ------------------------------------
     Python编程从入门到实践 精通Python基础教程python核心编程网络爬虫 python数据分析计算机程序设计
    87.00
    http://product.dangdang.com/1140574104.html
    水生一天图书专营店
    ------------------------------------
     Python编程从入门到精通+python基础教程 第3版 python基础入门2册 人民邮电出版社
    137.20
    http://product.dangdang.com/1418479022.html
    文轩网旗舰店
    ------------------------------------
     正版利用Python进行数据分析+Python爬虫开发与项目实战+数据分析与挖掘实战+学习手册4本Python入门书籍
    317.00
    http://product.dangdang.com/1050377804.html
    晖文锦绣图书专营店
    ------------------------------------
     【2本套】Python编程-从入门到实践+Python网络爬虫 核心编程语言书籍 计算机程序设计从零到精通 游戏开发应
    138.00
    http://product.dangdang.com/1416975630.html
    育博彦图书专营店
    ------------------------------------
     【抖音奶爸的书房推荐】精装正版硬壳 变变变+点点点+好饿的小蛇+蚂蚁和西瓜+谁藏起来了 提高幼儿思维拓展认幼儿绘本 变
    135.00
    http://product.dangdang.com/1417168229.html
    童心悦美图书专营店
    ------------------------------------
     python基础教程 零基础学Python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网络爬虫书籍
    87.60
    http://product.dangdang.com/1292033809.html
    阅九州图书专营店
    ------------------------------------
     【全4册】python学习手册 第四版+流畅的Python+Python编程之美 佳实践指南学习+Python核心编程
    436.00
    http://product.dangdang.com/1107948713.html
    阅微阁图书专营店
    ------------------------------------
     Python编程 从入门到实践python爬虫python基础教程利用python进行数据分析python书籍pyth
    225.00
    http://product.dangdang.com/1034700579.html
    锋发韵流图书专营店
    ------------------------------------
     全3册正版书籍Python自学三件套视频版Python编程从入门到实践Python基础教程第3版Python编程从入门
    218.00
    http://product.dangdang.com/1416500025.html
    世纪书缘图书专营店
    ------------------------------------
     套装2册 Python编程 从入门到实践+Python基础教程 编程入门类图书 从基本概念到完整项目
    133.20
    http://product.dangdang.com/1482160296.html
    布克图书专营店
    ------------------------------------
     Python web开发2件套:Python编程从入门到实践+Flask Web开发基
    108.00
    http://product.dangdang.com/1414233630.html
    风向图书专营店
    ------------------------------------
     从Python开始学编程从入门到实践 python基础教程书籍python网络爬虫网络数据采集 零基础入门学pytho
    136.00
    http://product.dangdang.com/1263340416.html
    锋发韵流图书专营店
    ------------------------------------
     【套装9本】C++ PrimerPlus第六版中文版C#图解教程Java编程思想第四版python编程从入门到实践鸟哥
    798.00
    http://product.dangdang.com/1398453504.html
    阅微阁图书专营店
    ------------------------------------
     【套装3本】Python编程从入门到实践+Python核心编程 第3版+Python 3标准库
    382.00
    http://product.dangdang.com/1306734922.html
    阅微阁图书专营店
    ------------------------------------
     Python编程入门 全3册 Python编程从入门到实践零基础学习PythonP
    219.18
    http://product.dangdang.com/1436270989.html
    明日图书专营店
    ------------------------------------
     python基础教程 零基础学python3.5编程从入门到实践 精通计算机程序设计pathon核心技术网络爬虫书籍
    87.00
    http://product.dangdang.com/1442894836.html
    三味书屋图书专营店
    ------------------------------------
     Java/C/Python入门经典:Java编程思想 第4版+C Primer Plus第6版
    197.00
    http://product.dangdang.com/1414290630.html
    风向图书专营店
    ------------------------------------
     2本套Python编程-从入门到实践+Python网络爬虫 核心编程语言书籍 计算机程序设计从零到精通 游戏开发应用学
    138.00
    http://product.dangdang.com/1461096577.html
    金太阳图书专营店
    ------------------------------------
     正版 Python编程从入门到实践 python3.0绝技核心编程基础教程 网络爬虫入门书籍 python 视频编程从
    87.00
    http://product.dangdang.com/1451576248.html
    金种子图书专营店
    ------------------------------------
     【二手旧书9成新】Python编程:从入门到实践 /[美]埃里克・马瑟
    70.00
    http://product.dangdang.com/1468940825.html
    百亿德旧书专营店
    ------------------------------------
     正版现货 Python编程从入门到实践 python基础教程 Python核心编程 Python程序设计 python
    88.00
    http://product.dangdang.com/1328174548.html
    育博彦图书专营店
    ------------------------------------
     【百社好书】 图灵 Python编程从入门到实践 python基础教程数据分析python书核心编程爬虫人工智能机器学
    88.00
    http://product.dangdang.com/1360233510.html
    晖文锦绣图书专营店
    ------------------------------------
     python基础教程 零基础学Python编程从入门到实践 精通计算机程序设计pathon核心技术 网络爬虫书籍 赠源
    88.70
    http://product.dangdang.com/1507179655.html
    三味书屋图书专营店
    ------------------------------------
     Python编程从入门到实践python3.5绝技核心编程基础教程网络爬虫入门书籍python视频编程从入门到精通程序
    80.10
    http://product.dangdang.com/1507592697.html
    晖文锦绣图书专营店
    ------------------------------------
     Python Java C 语言从入门到精通三本套计算机核心编程基础教程书籍 零基础自学电脑程序设计开发进阶实践教材
    228.00
    http://product.dangdang.com/1019261614.html
    育博彦图书专营店
    ------------------------------------
     正版 Python编程从入门到实践 python3.0绝技核心编程基础教程 网络爬虫入门书籍 python 视频编程从
    95.00
    http://product.dangdang.com/1503481850.html
    博鸿文化图书专营店
    ------------------------------------
     现货 自我进化 发现你的创新力 蒂娜齐莉格 著
    37.00
    http://product.dangdang.com/1330247877.html
    童心悦美图书专营店
    ------------------------------------
     【全4册】python学习手册 第四版+流畅的Python+Python编程之美 佳实践指南学习+Python核心编程
    432.00
    http://product.dangdang.com/1297218113.html
    阅微阁图书专营店
    ------------------------------------
     Python编程从入门到实践 (美)Matthes绝技核心编程基础视频教程网络爬虫入门书籍+ Python程序设计(第
    148.00
    http://product.dangdang.com/1233420915.html
    三味书屋图书专营店
    ------------------------------------
     现货 Python编程从入门到实践python3.5绝技核心编程基础教程网络爬虫入门书籍python视频编程从入门到精
    98.00
    http://product.dangdang.com/1501414778.html
    锋发韵流图书专营店
    ------------------------------------
     Python编程从入门到实践 python3.5核心编程基础教程网络爬虫入门书籍 零基础学python视频编程从入门到
    88.00
    http://product.dangdang.com/1441408264.html
    三味书屋图书专营店
    ------------------------------------
     Python编程从入门到实践 python3.0绝技核心编程基础教程 网络爬虫入门书籍 python 视频编程从入门到
    89.00
    http://product.dangdang.com/1443910304.html
    书海行舟图书专营店
    ------------------------------------
     【套装3本】Python编程从入门到实践+Python核心编程 第3版+Python 3标准库
    386.00
    http://product.dangdang.com/1441429764.html
    三味书屋图书专营店
    ------------------------------------
     python基础教程教材Python编程从零基础到项目实战实例python从入门到实战python语言及其应用
    164.00
    http://product.dangdang.com/1398414724.html
    雅文阁图书专营店
    ------------------------------------
     双视角阅读・注音本(全5册)――童话集与绘本的创意结合
    75.00
    http://product.dangdang.com/1258500585.html
    童心悦美图书专营店
    ------------------------------------
    
    Process finished with exit code 0

    # 爬取京东网站

    #coding=utf-8
    
    import requests
    from lxml import html
    
    def spider(sn):
        """爬取京东的图书数据"""
        url= 'https://search.jd.com/Search?keyword={0}'.format(sn)
    
        # 获取html文档
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}
        html_doc = requests.get(url, headers = headers)
        html_doc.encoding = 'utf-8'
        html_data = html_doc.text
        # print(html_data)
    
        # 获取xpath对象
        selector = html.fromstring(html_data)
        # 找到列表的集合
        # 查看 id = J_goodsList 通过看网页源码,看id是否唯一,如果唯一就能精确定位了
        ul_list = selector.xpath('//div[@id="J_goodsList"]/ul/li')
        # 解析对应的内容,标题,价格
        for li in ul_list:
            # 标题
            title = li.xpath('div/div[@class="p-name"]/a/em/text()')
            print(title[0])
    
            # 购买链接
            link = li.xpath('div/div[@class="p-name"]/a/@href')
            print(link[0])
    
            # 价格
            price = li.xpath('div/div[@class="p-price"]/strong/i/text()')
            print(price[0])
    
            # 出版社  // 双斜线表示过滤掉中间任意内容
            store = li.xpath('div//div[@class="p-shopnum"]/a/text()')
            print(store[0])
    
            print('-------------------------------------')
    if __name__ == "__main__":
        sn = "9787115428028"
        spider(sn)

     # 爬取一号店的数据

    # coding=utf-8
    
    import requests
    from lxml import html
    
    
    def spider_yhd(sn):
        """爬取一号店图书"""
        url = "https://search.yhd.com/c0-0/k{0}".format(sn)
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}
        response = requests.get(url, headers = headers)
        # print(response.encoding)
    
        # 获取网页内容
        html_doc = response.text
        # 获取xpath对象
        selector = html.fromstring(html_doc)
    
        div_list = selector.xpath('//div[@id="itemSearchList"]/div')
        # print(html_doc)
        for div in div_list:
            # 书名
            title = div.xpath('div/p[@class="proName clearfix"]/a/@title')
            print(title)
    
            # 价格
            price = div.xpath('div/p[@class="proPrice"]/em/text()')
            print(price[1].replace("
    ",""))
    
            # 出版社
            link = div.xpath('div/p[@class="proName clearfix"]/a/@href')
            print("https:"+link[0])
    
            # 购买链接
            store = div.xpath('div/p[@class="searh_shop_storeName storeName limit_width"]/a/@title')
            print(store)
            print('------------------------------------------')
    
    if __name__ == "__main__":
        sn = "9787115428028"
        spider_yhd(sn)

    # 爬取天猫的数据(淘宝需要登录,就改为爬取天猫)

    #coding=utf-8
    
    import requests
    from lxml import html
    
    def spider_tmall(sn):
    
        # 获取url
        url = "https://list.tmall.com/search_product.htm?q={0}".format(sn)
        # 获取网页内容
        response = requests.get(url)
        # print(response.encoding)
        url_data = response.text
        # 获取xpath
        selector = html.fromstring(url_data)
        ul_list = selector.xpath('//div[@id="J_ItemList"]/div')
    
        for li in ul_list:
            # 书名
            title = li.xpath('div[@class="product-iWrap"]/p[@class="productTitle"]/a/@title')
            print(title[0])
            # 链接
            link = li.xpath('div[@class="product-iWrap"]/p[@class="productTitle"]/a/@href')
            print("https:"+link[0])
            # 价格
            price = li.xpath('div[@class="product-iWrap"]/p[@class="productPrice"]/em/@title')
            print(price[0])
            # 出版社
            store = li.xpath('div[@class="product-iWrap"]/div[@class="productShop"]/a[@class="productShop-name"]/text()')
            print(store[0].replace("
    ",""))
    
    
            print('------------------------')
    
    if __name__ == "__main__":
        spider_tmall("9787115428028")
  • 相关阅读:
    LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
    第 15 篇:接口的单元测试
    【译】GitHub 为什么挂?官方的可行性报告为你解答
    微服务常用的几种部署方式——蓝绿部署,滚动升级,灰度发布/金丝雀发布
    .net生成PDF文件的几种方式
    读取私有字体信息并进行相关判断
    Windows Locale Codes
    总结C#获取当前路径的7种方法
    Devexpress aspxgridview oncustomcallback 无刷新更新数据
    ArcGIS Pro 版本、版本号、发布年代
  • 原文地址:https://www.cnblogs.com/reblue520/p/11153167.html
Copyright © 2020-2023  润新知