• 爬虫源码---爬取小猫猫交易网站


    前言:

    本片文章主要对爬虫爬取网页数据来进行一个简单的解答,对与其中的数据来进行一个爬取。

    一:环境配置

    Python版本:3.7.3

    IDE:PyCharm

    所需库:requests ,parsel 

    二:网站页面

    我们需要获取以下数据:

    '地区', '店名', '标题', '价格', '浏览次数', '卖家承诺', '在售只数',
    '年龄', '品种', '预防', '联系人', '联系方式', '异地运费', '是否纯种',
    '猫咪性别', '驱虫情况', '能否视频', '详情页'

    三:具体代码实现 

    1. # _*_ coding : utf-8 _*_
    2. # @Time : 2023/9/3 23:03
    3. # @Author : HYT
    4. # @File : 猫
    5. # @Project : 爬虫教程
    6. import requests
    7. import parsel
    8. import csv
    9. url ='http://www.maomijiaoyi.com/index.php?/list_0_78_0_0_0_0.html'
    10. headers = {
    11. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
    12. }
    13. response = requests.get(url=url, headers=headers)
    14. selector = parsel.Selector(response.text)
    15. href = selector.css('div.content:nth-child(1) a::attr(href)').getall()
    16. areas = selector.css('div.content:nth-child(1) a .area span.color_333::text').getall()
    17. areas = [i.strip() for i in areas]
    18. zip_data = zip(href, areas)
    19. for index in zip_data:
    20. # http://www.maomijiaoyi.com/index.php?/chanpinxiangqing_546549.html
    21. index_url = 'http://www.maomijiaoyi.com' + index[0]
    22. response_1 = requests.get(url=index_url, headers=headers)
    23. selector_1 = parsel.Selector(response_1.text)
    24. area = index[1] # 地区
    25. shop = selector_1.css('.dinming::text').get().strip() # 店名
    26. title = selector_1.css('.detail_text .title::text').get().strip() # 标题
    27. price = selector_1.css('span.red.size_24::text').get() # 价格
    28. views = selector_1.css('.info1 span:nth-child(4)::text').get() # 浏览次数
    29. promise = selector_1.css('.info1 div:nth-child(2) span::text').get().replace('卖家承诺: ', '') # 卖家承诺
    30. sale = selector_1.css('.info2 div:nth-child(1) div.red::text').get() # 在售
    31. age = selector_1.css('.info2 div:nth-child(2) div.red::text').get() # 年龄
    32. breed = selector_1.css('.info2 div:nth-child(3) div.red::text').get() # 品种
    33. safe = selector_1.css('.info2 div:nth-child(4) div.red::text').get() # 预防
    34. people = selector_1.css('div.detail_text .user_info div:nth-child(1) .c333::text').get() # 联系人
    35. phone = selector_1.css('div.detail_text .user_info div:nth-child(2) .c333::text').get() # 联系方式
    36. fare = selector_1.css('div.detail_text .user_info div:nth-child(3) .c333::text').get().strip() # 异地运费
    37. purebred = selector_1.css(
    38. '.xinxi_neirong div:nth-child(1) .item_neirong div:nth-child(1) .c333::text').get().strip() # 是否纯种
    39. sex = selector_1.css(
    40. '.xinxi_neirong div:nth-child(1) .item_neirong div:nth-child(4) .c333::text').get().strip() # 猫咪性别
    41. worming = selector_1.css(
    42. '.xinxi_neirong div:nth-child(2) .item_neirong div:nth-child(2) .c333::text').get().strip() # 驱虫情况
    43. video = selector_1.css(
    44. '.xinxi_neirong div:nth-child(2) .item_neirong div:nth-child(4) .c333::text').get().strip() # 能否视频
    45. dit = {
    46. '地区': area,
    47. '店名': shop,
    48. '标题': title,
    49. '价格': price,
    50. '浏览次数': views,
    51. '卖家承诺': promise,
    52. '在售只数': sale,
    53. '年龄': age,
    54. '品种': breed,
    55. '预防': safe,
    56. '联系人': people,
    57. '联系方式': phone,
    58. '异地运费': fare,
    59. '是否纯种': purebred,
    60. '猫咪性别': sex,
    61. '驱虫情况': worming,
    62. '能否视频': video,
    63. '详情页': index_url,
    64. }
    65. print(area, shop, title, price, views, promise, sale, age, breed,
    66. safe, people, phone, fare, purebred, sex, worming, video, index_url, sep=' | ')

    四:结果展示

  • 相关阅读:
    Spring Security和oauth2的关系
    前端工程化(vue脚手架安装)
    python爬虫和前端(部分)
    Java 文件操作
    openRPA开源项目源码编译
    从订单到发货:电商平台API如何优化供应链管理
    加权平均数
    docker、docker-compose 下安装elasticsearch、IK分词器
    十四天学会C++之第一天(入门和基本语法)
    iptables(4)规则匹配条件
  • 原文地址:https://blog.csdn.net/qq_52351946/article/details/132657425