Python CSS选择器爬取京东网商品信息过程解析

作者:dcpeng 时间:2022-01-17 21:18:17 

CSS选择器

目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup使用的技术书籍和博客软文并不多,而在这仅有的资料中介绍CSS选择器的少之又少。在网络爬虫的页面解析中,CCS选择器实际上是一把效率甚高的利器。虽然资料不多,但官方文档却十分详细,然而美中不足的是需要一定的基础才能看懂,而且没有小而精的演示实例。

Python CSS选择器爬取京东网商品信息过程解析

京东商品图

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用CSS选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

Python CSS选择器爬取京东网商品信息过程解析

部分网页源码

仔细观察源码,可以发现我们所需的目标信息在红色框框的下面,那么接下来我们就要一层一层的去获取想要的信息。

在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

Python CSS选择器爬取京东网商品信息过程解析

CSS选择器在线复制

很多小伙伴都觉得CSS表达式很难写,其实掌握了基本的用法也就不难了。在线复制CSS表达式如上图所示,可以很方便的复制CSS表达式。但是通过该方法得到的CSS表达式放在程序中一般不能用,而且长的没法看。所以CSS表达式一般还是要自己亲自上手。

直接上代码,利用CSS去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

Python CSS选择器爬取京东网商品信息过程解析

代码实现

如果你想快速的实现功能更强大的网络爬虫,那么BeautifulSoupCSS选择器将是你必备的利器之一。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。

最后得到的效果图如下所示:

Python CSS选择器爬取京东网商品信息过程解析

最终效果图

新鲜的狗粮再一次出炉咯~~~

Python CSS选择器爬取京东网商品信息过程解析

CSS选择器

关于CSS选择器的简单介绍:

BeautifulSoup支持大部分的CSS选择器。其语法为:向tag对象或BeautifulSoup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回,即返回类型为list。

tag.select("string")

BeautifulSoup.select("string")

注意:在取得含有特定CSS属性的元素时,标签名不加任何修饰,如class类名前加点,id名前加 /#。

来源:https://www.cnblogs.com/dcpeng/p/12985344.html

标签:Python,CSS,选择器,爬取
0
投稿

猜你喜欢

  • Django页面数据的缓存与使用的具体方法

    2023-03-29 11:42:44
  • 用Python制作mini翻译器的实现示例

    2021-07-26 02:48:09
  • 心理模型

    2009-05-17 13:45:00
  • 基于php socket(fsockopen)的应用实例分析

    2023-11-18 21:38:32
  • PHP队列用法实例

    2023-10-20 12:30:49
  • 深入浅析Python中的yield关键字

    2022-04-18 05:02:32
  • Python离线安装openpyxl模块的步骤

    2021-08-10 16:04:04
  • js弹出新窗口而不会被浏览器阻止的方法

    2010-04-06 12:38:00
  • php统计数组不同元素的个数的实例方法

    2023-06-11 23:04:59
  • 不同浏览器所支持的“事件”

    2007-09-26 18:29:00
  • Python删除字符串中字符的四种方法示例代码

    2021-09-25 08:23:25
  • python用opencv 图像傅里叶变换

    2021-03-02 02:04:35
  • python numpy数组中的复制知识解析

    2023-08-10 14:41:33
  • CSS分栏布局的方法:绝对定位和浮动

    2009-04-30 13:10:00
  • python中的format是什么意思,format怎么用

    2022-07-31 08:51:45
  • php将12小时制转换成24小时制的方法

    2023-11-21 15:56:08
  • 绿色下划线的简洁CSS导航代码

    2007-09-17 12:51:00
  • Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式

    2021-01-07 20:38:33
  • Python与Appium实现手机APP自动化测试的示例代码

    2023-07-26 05:06:07
  • Python OpenCV识别行人入口进出人数统计

    2023-09-18 13:08:06
  • asp之家 网络编程 m.aspxhome.com