zoukankan      html  css  js  c++  java
  • 爬取京东商品分类和链接

    最近因为工作比较忙也没有更新随笔。昨天下班因为身体不舒服,代码也没有码多少。说码代码也还算不上,毕竟是自己无聊写点小脚本自娱自乐。

    今天这篇主要的知识点是使用Python的BeautifulSoup进行多层的遍历。

    笔者闲来无事写了个小爬虫,主要是爬取京东商品分类以及对应的连接

    如图所示。只是一个简单的哈,不是爬取里面的隐藏的东西。

    from bs4 import BeautifulSoup as bs
    import requests
    headers = {
    "host": "www.jd.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36 Core/1.47.933.400 QQBrowser/9.4.8699.400",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
    }
    session = requests.session()
    def get_url():
    renspned = bs(session.get('http://www.jd.com/',headers = headers).text,'html.parser')
    for i in renspned.find("div", {"class": "dd-inner"}).find_all("a",{"target":"_blank"}):
    print(i.get_text(),':',i.get('href'))
    get_url()

    运行这段代码以及达到了我们的目的。

    我们来解读一下这段代码。
    首先我们要访问到京东的首页。
    然后通过BeautifulSoup对访问到的首页进行解析。
    这个时候,我们就要定位元素,来获取我们需要的东西了。
    在浏览器中通过F12,我们可以看到下图所示的东西:

    我们来看看下面这句代码:

    for i in renspned.find("div", {"class": "dd-inner"}).find_all("a",{"target":"_blank"})
    这一行代码完全满足我们的需求,首先用find方法,定位到了class=“dd-inner”的div,然后使用find_all对该标签下所有的a标签。
    最后,我想打印出所有的商品分类以及对应的链接,于是,我使用了i.
    get_text()i.get('href')的方法终于获取到了商品分类和对应的链接。

    其实不是很难,主要是要用对方法。笔者因为是初学方法没有用对。花了差不多两天时间才搞定。这里也是告诉大家,可以使用find().find_all()的方法进行多层的遍历。
    
    
    
    
  • 相关阅读:
    如何查看Android SDK源码版本
    迁移 Express 到函数计算
    阿里云安全运营中心:DDoS攻击趁虚而入,通过代理攻击已成常态
    Schedulerx2.0支持应用级别资源管理和任务优先级
    Serverless 解惑——函数计算如何安装字体
    一遇到复杂分析查询就卡顿?MySQL分析实例了解一下
    浅谈企业的数据资产管理
    大咖说备份 | 云,让灾备更简单
    急速上线 Serverless 钉钉机器人“防疫精灵”
    Alibaba Cloud Linux 2 LTS 正式发布,提供更高性能和更多保障
  • 原文地址:https://www.cnblogs.com/rookie-c/p/5808817.html
Copyright © 2011-2022 走看看