python抓取京东商城的商品名称和价格

突然心血来潮想抓一个京东的商品价格,突然发现网页的源码里没有价格这一项,只有商品的编号,网上说是显示的同事js从数据库里取出商品价格,放在页面上,那么我只能模拟请求了。哇咔咔,记得去你给京东投简历之后就没有然后了,难道就因为我也叫京东,你这也太浮夸了,给我幼小心灵造成创伤了。

原本要写一下creepy这个模块来抓取了,但今天时间不够了,明天还要上班。。。。明天再写那个模块吧,据说是台湾大牛开发的,超级给力。

import urllib
import json
import re

class JdPrice(object):
    """
    对获取京东商品价格进行简单封装
    """
    def __init__(self, url):
        self.url = url
        self._response = urllib.urlopen(self.url)
        self.html = self._response.read()

    def get_product(self):
        """
        获取html中,商品的描述(未对数据进行详细处理,粗略的返回str类型)
        """
        product_re = re.compile(r'compatible: true,(.*?)};', re.S)
        product_info = re.findall(product_re, self.html)[0]
        return product_info

    def get_product_skuid(self):
        """
        通过获取的商品信息,获取商品的skuid
        """
        product_info = self.get_product()
        skuid_re = re.compile(r'skuid: (.*?),')
        skuid = re.findall(skuid_re, product_info)[0]
        return skuid

    def get_product_name(self):
        """
        通过获取的商品信息,获取商品的name
        """
        #'\u4e2d\u6587'.decode('unicode-escape') (你可能需要print它才能看到结果)
        product_info = self.get_product()
        #源码中名称左右有两个',所以过滤的时候应该去掉
        name_re = re.compile(r"name: '(.*?)',")
        name = re.findall(name_re, product_info)[0]
        return name.decode('unicode-escape')#将其转换为中文

    def get_product_price(self):
        """
        根据商品的skuid信息,请求获得商品price
        :return:
        """
        price = None

        #得到产品的序号和名称,取价格的时候会用得到
        skuid = self.get_product_skuid()
        name = self.get_product_name()
        print name

        #通过httpfox检测得知,每次网页都会访问这个网页去提取价格嵌入到html中
        url = 'http://p.3.cn/prices/mgets?skuIds=J_' + skuid + '&type=1'

        #json调整格式,并将其转化为utf-8,列表中只有一个字典元素所以取出第一个元素就转化为字典
        price_json = json.load(urllib.urlopen(url))[0]

        #p对应的价格是我们想要的
        if price_json['p']:
            price = price_json['p']
        return price

if __name__ == '__main__':
    print "+"*20+"welcome to 京东放养的爬虫"+"+"*20
    url = 'http://item.jd.com/1217524.html'
    jp = JdPrice(url)
    print jp.get_product_price()
    print "+"*20+"welcome to 京东放养的爬虫"+"+"*20
时间: 2024-10-11 02:07:20

python抓取京东商城的商品名称和价格的相关文章

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS

基于python的scrapy爬虫抓取京东商品信息

这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.py , settings.py , 其中主要编写的是前两个文件,最后一个文件主要设置破解反爬方法. phone.py编写程序如下: import scrapy from scrapy.http import Request from jd_phone.items import JdPhoneItem

房东要给我涨800房租,生气的我用Python抓取帝都几万套房源信息,我主动涨了1000。

老猫我在南五环租了一个80平两居室,租房合同马上到期,房东打电话问续租的事,想要加房租:我想现在国家正在也在抑制房价,房子价格没怎么涨,房租应该也不会涨,于是霸气拒绝了,以下是聊天记录:确认不续租之后,两三年没找过房的我上网搜索租房,没想到出来一坨自如,蛋壳,贝壳等中介网站:进去看看,各种房照非常漂亮,但是一看房租,想送给自己一首<凉凉>:附近房租居然比我当前房租高1000多RMB:自我安慰下,这些网站房源价格不是真实的,于是切换到我爱我家,链家等大中介平台,结果发现房租价格都差不多:心想这才

Scrapy实战---Scrapy对接selenium爬取京东商城商品数据

本篇目标:我们以爬取京东商城商品数据为例,展示Scrapy框架对接selenium爬取京东商城商品数据. 背景: 京东商城页面为js动态加载页面,直接使用request请求,无法得到我们想要的商品数据,故需要借助于selenium模拟人的行为发起请求,输出源代码,然后解析源代码,得到我们想要的数据. 第一步:设置我们需要提取的字段,也就是在Scrapy框架中设置Item.py文件. class ProductItem(scrapy.Item): # define the fields for y

Python抓取页面乱码问题的解决

import urllib2 response=urllib2.urlopen('http://house.focus.cn/') html=response.read() print html.decode('gbk') Python抓取页面乱码问题的解决,布布扣,bubuko.com

使用python抓取CSDN关注人的所有发布的文章

# -*- coding: utf-8 -*- """ @author: jiangfuqiang """ import re import urllib2 import cookielib import time def startParser(author,page=1): reg = r'<a href="/\w+/article/details/\d+">\s*\t*\n*\s*\t*\s*.*?\t*\n

php+phpquery简易爬虫抓取京东商品分类

这是一个简单的php加phpquery实现抓取京东商品分类页内容的简易爬虫.phpquery可以非常简单地帮助你抽取想要的html内容,phpquery和jquery非常类似,可以说是几乎一样:如果你有jquery的基础的话你可以迅速地上手. 1.下载phpquery并置于web根目录下的phpQuery文件夹 phpquery下载:https://code.google.com/p/phpquery/downloads/list phpquery教程可在这里查看:https://code.go

运用python抓取博客园首页的所有数据,而且定时持续抓取新公布的内容存入mongodb中

原文地址:运用python抓取博客园首页的所有数据,而且定时持续抓取新公布的内容存入mongodb中 依赖包: 1.jieba 2.pymongo 3.HTMLParser # -*- coding: utf-8 -*- """ @author: jiangfuqiang """ from HTMLParser import HTMLParser import re import time from datetime import date im

Python抓取需要cookie的网页

Python抓取需要cookie的网页 在仿照<Python小练习:可视化人人好友关系>一文时,需要登录模拟登录人人网.然而自从CSDN事件之后,人人网开始使用加密方式处理登录名和密码,直接使用post方式已经无法登陆人人网.这时,从豆瓣讨论中找到了解决方法: 1. 首先使用浏览器登陆人人,然后找到浏览器中关于登陆的Cookie: 2. 将Cookie记录下来,在Python中使用cookie模块模拟浏览器的行为: 3. 取得并解析数据. 1. HTTP协议与Cookie 抓取网页的过程跟浏览