01.爬虫:python代码获取【什么值得买网】手机折扣信息

本文详细介绍了如何使用Python爬虫从什么值得买网站抓取手机折扣信息,包括引入所需库、读取数据、解析源码、打印信息及下载图片的步骤,帮助读者掌握网络数据获取技巧。
摘要由CSDN通过智能技术生成

目录

一、爬取网站

二、使用步骤

1.引入库

2.读入数据

3.解析源码

4.打印信息

5.下载图片

 6.完整代码如下

7.运行结果


前言

python基础代码:爬虫爬取什么值得买网站手机折扣信息

一、爬取网站

网站:【手机报价】哪里买手机便宜_最新手机价格大全_什么值得买买什么手机好,买手机就上什么值得买!为您推荐最新手机优惠价格信息、手机特价商品、手机大全等信息,让您的消费更值!https://www.smzdm.com/fenlei/zhinengshouji/#feed-main

二、使用步骤

1.引入库

代码如下(示例):

from selenium import webdriver
from lxml import etree
import time
import requests

2.读入数据

代码如下(部分):

def doWork():
    for i in range(1,3):
        mainurl = 'https://www.smzdm.com/fenlei/zhinengshouji/p{}/#feed-main'.format(i)
        print(mainurl)
        webdriverFunc(url = mainurl)

if __name__ == '__main__':
    doWork()

3.解析源码

def webdriverFunc(url):
    '''该函数功能:请求网址,获取网页源码'''

    #初始化浏览器,设置Chrome浏览器
    browser = webdriver.Chrome()
    #设置全屏
    browser.maximize_window()

    #打开url
    URL = url
    browser.get(URL)
    #获取网页源码,并解析
    html = etree.HTML(browser.page_source)

    #利用xpath解析源码
    mobile_picture = html.xpath("//*[@id='feed-main-list']/li/div/div/a/img/@src")
    title = html.xpath("//*[@id='feed-main-list']/li/div/div/h5/a/text()")
    price = html.xpath("//*[@id='feed-main-list']/li/div/div/div[@class='z-highlight']/a/text()")
    shopping_name = html.xpath("//*[@id='feed-main-list']/li/div/div/div/div[2]/span/a/text()")


    #处理列表数据
    price = [ p.strip() for p in price] #去除列表元素首尾空白
    price = [element for element in price if element !=''] #去除空白元素
    shopping_name = [ shop.strip() for shop in shopping_name] #去除列表元素首尾空白

4.打印信息

def printCar(title,mobile_picture,price,shopping_name):
    '''该方法功能:打印信息'''
    global i
    for t,pic,p,shoppingname in zip(title,mobile_picture,price,shopping_name):
        print('{}.标题:{}'.format(i,t))
        print('图片地址:https:{}'.format(pic))
        print('价格(单位:元):{}'.format(p))
        print('信息来源:{}'.format(shoppingname))
        print('----------------------------------------')

        #【2,下载图片】
        downloadPic('{}.标题:{}'.format(i,t),'https:{}'.format(pic))

        #计数器自增加1
        i += 1

5.下载图片

def downloadPic(title,url):
    '''该方法功能:下载图片到本地'''

    # 图片下载的路径
    pic_path = 'D:\\py_project\\picture\\什么值得买手机折扣信息\\'
    #图片文件名
    file = pic_path + '\\%s.gif' % (title)



    response = requests.get(url)
    img = response.content

    #下载图片
    with open(file, 'wb') as f:
        f.write(img)
    time.sleep(1)

 6.完整代码如下

# 我们以什么值得买网站查询手机折扣信息

from selenium import webdriver
from lxml import etree
import time
import requests

#计数器
i = 1

def webdriverFunc(url):
    '''该函数功能:请求网址,获取网页源码'''

    #初始化浏览器,设置Chrome浏览器
    browser = webdriver.Chrome()
    #设置全屏
    browser.maximize_window()

    #打开url
    URL = url
    browser.get(URL)
    #获取网页源码,并解析
    html = etree.HTML(browser.page_source)

    #利用xpath解析源码
    mobile_picture = html.xpath("//*[@id='feed-main-list']/li/div/div/a/img/@src")
    title = html.xpath("//*[@id='feed-main-list']/li/div/div/h5/a/text()")
    price = html.xpath("//*[@id='feed-main-list']/li/div/div/div[@class='z-highlight']/a/text()")
    shopping_name = html.xpath("//*[@id='feed-main-list']/li/div/div/div/div[2]/span/a/text()")


    #处理列表数据
    price = [ p.strip() for p in price] #去除列表元素首尾空白
    price = [element for element in price if element !=''] #去除空白元素
    shopping_name = [ shop.strip() for shop in shopping_name] #去除列表元素首尾空白


    #初步核验数据
    print(mobile_picture)
    print(title)
    print(price)
    print(shopping_name)
    print(len(mobile_picture),len(title),len(price),len(shopping_name))


    # 【1,遍历实例】
    printCar(title,mobile_picture,price,shopping_name)

    #关闭浏览器
    browser.close()



def printCar(title,mobile_picture,price,shopping_name):
    '''该方法功能:打印信息'''
    global i
    for t,pic,p,shoppingname in zip(title,mobile_picture,price,shopping_name):
        print('{}.标题:{}'.format(i,t))
        print('图片地址:https:{}'.format(pic))
        print('价格(单位:元):{}'.format(p))
        print('信息来源:{}'.format(shoppingname))
        print('----------------------------------------')

        #【2,下载图片】
        downloadPic('{}.标题:{}'.format(i,t),'https:{}'.format(pic))

        #计数器自增加1
        i += 1


def downloadPic(title,url):
    '''该方法功能:下载图片到本地'''

    # 图片下载的路径
    pic_path = 'D:\\py_project\\picture\\什么值得买手机折扣信息\\'
    #图片文件名
    file = pic_path + '\\%s.gif' % (title)



    response = requests.get(url)
    img = response.content

    #下载图片
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值