python爬取京东商品价格走势_python抓取京东价格分析京东商品价格走势

代码如下:

from creepy import Crawler

from BeautifulSoup import BeautifulSoup

import urllib2

import json

class MyCrawler(Crawler):

def process_document(self, doc):

if doc.status == 200:

print ‘[%d] %s’ % (doc.status, doc.url)

try:

soup = BeautifulSoup(doc.text.decode(‘gb18030’).encode(‘utf-8’))

except Exception as e:

print e

soup = BeautifulSoup(doc.text)

print soup.find(id=”product-intro”).div.h1.text

url_id=urllib2.unquote(doc.url).decode(‘utf8’).split(‘/’)[-1].split(‘.’)[0]

f = urllib2.urlopen(‘http://p.3.cn/prices/get?skuid=J_’+url_id,timeout=5)

price=json.loads(f.read())

f.close()

print price[0][‘p’]

else:

pass

crawler = MyCrawler()

crawler.set_follow_mode(Crawler.F_SAME_HOST)

crawler.set_concurrency_level(16)

crawler.add_url_filter(‘\.(jpg|jpeg|gif|png|js|css|swf)$’)

crawler.crawl(‘http://item.jd.com/982040.html’)

Python爬取京东商品信息,通常会使用到一些网络爬虫库,如requests用于发送HTTP请求获取网页内容,BeautifulSoup或 lxml 用于解析HTML文档提取所需数据,以及如PIL(Pillow)库处理图片链接。 以下是一个简单的步骤概述: 1. **安装必要的库**: 首先需要安装`requests`, `beautifulsoup4` 和 `lxml` 或者 `html.parser`(如果只使用BeautifulSoup的话): ```bash pip install requests beautifulsoup4 ``` 2. **设置请求头**: 为了模拟浏览器访问,通常需要设置请求头,包括User-Agent等: ```python headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } ``` 3. **构造URL并获取页面内容**: 选择你要抓取商品列表页,例如通过搜索关键词找到的结果页URL: ```python url = "https://search.jd.com/Search?keyword=example%20product&enc=utf-8" response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'lxml') # 使用BeautifulSoup解析HTML ``` 4. **定位元素并提取信息**: 根据京东商品详情页的HTML结构,找到商品名称、店铺名、价格商品链接和图片链接。这通常涉及查找特定的class或id属性。这里仅提供一个基本示例,实际操作中可能需要调整: ```python name_elements = soup.select('.name') shop_elements = soup.select('.shop-name') price_elements = soup.select('.price') product_links = soup.select('.gl-item a') image_links = soup.select('.img-wrap img')['src'] ``` 5. **处理信息**: 将上述选择器返回的数据存储在一个字典或者列表中,方便后续处理和输出。 ```python data_list = [] for i in range(len(name_elements)): data = { '商品名称': name_elements[i].text, '店铺名称': shop_elements[i].text if shop_elements else '', '商品价格': price_elements[i].get_text() if price_elements else '', '商品链接': product_links[i]['href'], '商品图片': image_links[i] } data_list.append(data) ``` 6. **保存或输出结果**: 可以将数据存储到CSV文件、数据库或直接打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值