Python爬虫(一)京东商品价格及详情页抓取

这是一个以http://item.jd.com/2957726.html为例的单页抓取案例

import urllib.request;  #载入urllib.request,用于获取页面html源代码
from pandas import Series;  #载入series包
from pandas import DataFrame;   #载入dataframe包
from bs4 import BeautifulSoup;  #载入beautifulsoup包
import json; #载入json包

response = urllib.request.urlopen('http://item.jd.com/2957726.html'); #获取html源代码
html = response.read(); #将源代码转入html
soup = BeautifulSoup(html); #解析html
data = DataFrame(columns=['Feature', 'Property']) #创建空白dataframe用于装载爬取信息

divSoup = soup.find(id="product-detail-2")  #通过分析,发现规格参数所在部分id
trs = divSoup.find_all('tr');

for tr in trs :
    tds = tr.find_all('td');
    if len(tds)==2: #列表有两个值的时才执行爬取
        f=tds[0].getText();
        p=tds[1].getText();  
        data = data.append(
            Series(
                [f, p], 
                index=['Feature', 'Property']
            ), ignore_index=True
        );

response = urllib.request.urlopen('http://p.3.cn/prices/get?skuid=J_2244423');
jsonString = response.read();
jsonObject = json.loads(jsonString.decode())
jsonObject[0]['p']  #解析p的值,即价格

df.to_csv("D:\\df.csv"); #导出结果

结果:

index Feature Property
0 品牌 三星(SAMSUNG)
1 型号 G9350
2 颜色 深邃黑
3 上市年份 2016年
4 上市月份 6月
5 输入方式 触控
6 智能机
7 操作系统 安卓(Android)
8 操作系统版本 Android 6.0
9 用户界面 TouchWiz 4.0
10 CPU品牌 Qualcomm 骁龙
11 CPU型号 骁龙820
12 CPU频率 2.15GHz,1.6GHz
13 CPU核数 四核
14 GPU Adreno 530
15 运营商标志或内容
16 4G网络制式 移动4G/联通4G/电信4G
17 3G网络制式 移动3G(TD-SCDMA)/联通3G(WCDMA)/电信3G(CDMA2000)
18 2G网络制式 移动2G/联通2G(GSM)/电信2G(CDMA)
19 网络频率 4G LTE TDD B38(2600),B39(1900),B40(2300),B41(2500)
20 机身内存 32GB ROM
21 运行内存 4GB RAM
22 储存卡类型 MicroSD(TF)
23 屏幕尺寸 5.5英寸
24 触摸屏 电容屏,多点触控
25 分辨率 2560×1440(2K)
26 副屏参数 NA
27 超大字体 支持
28 GPS模块 支持
29 重力感应 支持
30 光线感应 支持
31 距离感应 支持
32 电子罗盘 支持
33 陀螺仪 支持
34 后置摄像头 1200万像素
35 前置摄像头 500万像素
36 传感器类型 CMOS
37 闪光灯 支持
38 变焦模式 数码变焦
39 自动对焦 支持
40 收音机 不支持
41 音乐播放 支持
42 视频播放 支持
43 电视播放 不支持
44 录音 支持
45 Wi-Fi 支持
46 WIFI热点 支持
47 蓝牙 支持
48 NFC(近场通讯) 支持
49 OTG 支持
50 SIM卡尺寸 Nano SIM卡
51 电池类型 锂电池
52 电池容量(mAh) 3600
53 电池更换 不支持
54 理论待机时间(小时) 339
55 机身尺寸(mm) 150.9 x 72.6 x7.7
56 机身重量(g) 157
57 机身材质 玻璃+金属

你可能感兴趣的:(Python学习笔记)