Python爬虫实战(2):爬取京东商品列表
1,引言
在上一篇《Python爬虫实战:爬取Drupal论坛帖子列表》,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容。相反,JavaScript实现的动态网页内容,无法从html源代码抓取需要的内容,必须先执行JavaScript。
我们在《Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容》一文已经成功检验了动态网页内容的抓取方法,本文将实验程序进行改写,使用开源Python爬虫规定的标准python内容提取器,把代码变得非常简洁。
2,技术要点
我们在多个文章说过本开源爬虫的目的:节省程序员的时间。关键是省去编写提取规则的时间,尤其调试规则很花时间,节省时间问题在《1分钟快速生成用于网页内容提取的xslt》一文已经有了解决方案,本文我们用京东网站作为测试目标,而电商网站都有很多动态内容,比如,产品价格和评论数等等,往往采用后加载的方式,在html源文档加载完成以后再执行javascript代码把动态内容填写上,所以,本案例主要验证动态内容的抓取。
另外,本文案例没有使用GooSeeker爬虫API,而是把MS谋数台生成的xslt脚本程序保存在本地文件中,在程序运行的时候把文件读出来注入到gsExtractor提取器。后续会有专门的案例演示 API的使用方法。
总之,本示例两个技术要点总结如下:
- 从本地文件读取xlst程序
- 把xlst注入到提取器gsExtractor中,利用xslt从网页上一次提取性多个字段内容。
3,python源代码
源代码下载位置请看文章末尾的GitHub源。
4,抓取结果
运行上面的代码,就会爬取京东手机品类页面的所有手机型号、价格等信息,并保存到本地文件“京东手机列表_1.xml”中。我们用浏览器打开这个结果文件,会看到如下的内容。
5,相关文档
1, Python即时网络爬虫项目: 内容提取器的定义
6,集搜客GooSeeker开源代码下载源
1, GooSeeker开源Python网络爬虫GitHub源
7,文档修改历史
1,2016-06-11:V1.0
Python爬虫实战(2):爬取京东商品列表的更多相关文章
- python爬虫——用selenium爬取京东商品信息
1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Headless无弹窗模式 options = webdri ...
- 一起学爬虫——使用selenium和pyquery爬取京东商品列表
layout: article title: 一起学爬虫--使用selenium和pyquery爬取京东商品列表 mathjax: true --- 今天一起学起使用selenium和pyquery爬 ...
- Python爬虫实战之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖 ...
- Python爬虫实战:爬取腾讯视频的评论
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 易某某 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- Python爬虫实战之爬取糗事百科段子
首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...
- Python爬虫实战之爬取糗事百科段子【华为云技术分享】
首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...
- python爬虫实战之爬取智联职位信息和博客文章信息
1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author ...
- 芝麻HTTP:Python爬虫实战之爬取糗事百科段子
首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...
- python 爬虫实战1 爬取糗事百科段子
首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 本篇目标 抓取糗事百科热门段子 过滤带有图片的段子 实现每按一次回车显示一个段子的发布时间,发布人 ...
随机推荐
- CSS+DIV实现文字一行内显示,并且过多的文字以点来代替
有些时候我们在使用CSS+DIV进行排版实现大量的文字的时候,为了页面的美观,这里需要将文字在div中一行显示,并且将过多的文字进行隐藏,以点号进行代替.当鼠标放上面的时候会以title的形式显示所有 ...
- ButterKnife你需要知道的点
ButterKnife,这个方便findViewById而使用的库,无数的应用在使用它,以注解来实现的他,对应用的性能影响几乎可以忽略,可以放心使用. 使用: compile 'com.jakewha ...
- js分页代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xh ...
- 基于DateTime Picker修改成类似旅游网站出发日期选择的功能
原版说明文档:http://www.bootcss.com/p/bootstrap-datetimepicker/ 修改后可支持多日期选择和控制可选日期,这样就能在后台设置哪些日期可选,前台展示时可以 ...
- 构建混合云:配置Azure site to site VPN连接(3)
9. 那么我们来创建网关,创建网关的时候需要注意,看看你的设备是否支持动态网关,在本示例中的Cisco ASA 5550不支持动态网关,所以我们只能创建静态网关: 该创建会花费一定的时间,稍等即可. ...
- jquery hover延时
var timer; //绑定hover事件 $(function () { $(".centercy img").hover(showPic, hid ...
- SQL别名解析(转载)
通过使用 SQL,可以为列名称和表名称指定别名(Alias). 其实,select列的时候取别名有三种方法,这三种方法并不是所有数据库都适用. 方法一.直接在字段名称后面加上别名,中间以空格隔开. 方 ...
- C#线程间通讯
using System;using System.Text;using System.Windows.Forms;using System.Threading; namespace 线程间通讯{ ...
- Linux下,查看网络配置(IP,Gateway,DNS)
查看IP [root@localhost ~]# ifconfigem1 Link encap:Ethernet HWaddr F0:1F:AF:D6:17:DD ...
- 在PHP中处理表单之—Checkbox
原文翻译自:http://www.html-form-guide.com/php-form/php-form-checkbox.html 单个checkbox 形如: <form action ...