python爬虫 -12- splash(简单介绍和爬取京东)

文档

  👉 官方文档

安装

docker pull scrapinghub/splash
docker run -it -d  -p 8050:8050 --rm scrapinghub/splash

使用

  1. 在浏览器输入ip+host,并请求京东

  2. 可以看到

  3. 输入http://localhost:8050/render.html?url=https://search.jd.com/Search?keyword=%E5%B0%8F%E7%B1%B310&enc=utf-8&suggest=1.def.0.V08–38s0&wq=%E5%B0%8F%E7%B1%B3&pvid=c18d37ab55764cc4ac71e124bc496035


cmd使用

  1. curl "http://codekiller.top:8050/render.html?url=https://search.jd.com/Search?keyword=%E5%B0%8F%E7%B1%B310&enc=utf-8&suggest=1.def.0.V08--38s0&wq=%E5%B0%8F%E7%B1%B3&pvid=c18d37ab55764cc4ac71e124bc496035" -o 小米.html
    
  2. 打开htm文件

  3. 操作(获取所有价格)

    from lxml import etree
    
    file = open('C:\\Users\\MyPC\\小米.html', "r", encoding="UTF-8")
    text = file.read()
    selector = etree.HTML(text)
    prices = selector.xpath("//div[@class='p-price']/strong/i/text()")
    print(prices)
    

爬取京东

from urllib.parse import urlparse, urlencode, quote
from lxml import etree
import requests

ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
headers = {"User-Agent": ua}

keyword = "小米"
params = dict(
    keyword=keyword,
    enc="utf-8",
    wq=keyword,
    pvid="57486a4adb40455dbba829de75133672"
)
query_string = "&".join(("%s=%s" % (K, V)) for K, V in params.items())
jd_url = "https://search.jd.com/Search?" + query_string
url = "http://codekiller.top:8050/render.html?url=" + quote(jd_url)

r = requests.get(url, headers=headers)

selector = etree.HTML(r.text)

price_list = selector.xpath("//div[@class='p-price']/strong/i/text()")
name_list = selector.xpath("//div[contains(@class,'p-name')]/a/em/text()")

for name, price in zip(price_list, name_list):
    print(name, price)

基于 scrapy-splash京东爬虫实现可以分为以下几个功能模块: 1. 爬虫配置模块:配置京东网站的爬虫参数,包括要爬取的商品类别、价格区间、排序方式等等。 2. 网页解析模块:使用 Scrapy 的 Selector 对京东网站进行解析,并使用 Splash 渲染 JavaScript 生成的页面。 3. 数据存储模块:将解析后的数据存储到数据库或文件中。 4. 数据清洗处理模块:清洗处理爬取到的数据,去除重复的数据、格式化数据等等。 5. 数据分析模块:对爬取到的数据进行分析可视化,例如生成商品价格趋势图、商品销售排行榜等等。 具体实现流程如下: 1. 首先,使用 Scrapy 框架编写京东爬虫程序,配置京东网站的爬虫参数,包括要爬取的商品类别、价格区间、排序方式等等。 2. 在爬虫程序中,使用 Splash 对 JavaScript 生成的页面进行渲染,以便能够获取到完整的页面数据。 3. 使用 Scrapy 的 Selector 对京东网站进行解析,提取出需要的数据字段,例如商品名称、商品价格、商品评价等等。 4. 将解析后的数据存储到数据库或文件中,以便后续的数据清洗处理。 5. 对爬取到的数据进行清洗处理,去除重复的数据、格式化数据等等。 6. 使用 Python 数据分析库对清洗后的数据进行分析可视化,例如生成商品价格趋势图、商品销售排行榜等等。 7. 最后,将分析结果输出到文件或网页中,以便用户查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值