利用lxml和request完成当当网图书信息提取

本文介绍了一个使用Python编写的简单爬虫程序,用于从当当网抓取特定书籍的信息,包括书名、链接、价格和销售商。通过解析HTML数据,程序能够有效地收集并整理这些信息,并按价格排序展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
from lxml import html

def spider(sn):
    '''get book data of Dangdang'''
    url = 'http://search.dangdang.com/?key={sn}&act=input'.format(sn=sn)
    # 请求
    html_data = requests.get(url).text
    # 解析HTML
    selector = html.fromstring(html_data)
    # 获取图书列表
    ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')

    #提取出书籍的部分信息
    book_list = []
    for li in ul_list:

        #bookName
        bookName = li.xpath('a/@title')[0]
        
        #link
        link = li.xpath('a/@href')[0]
        
        #price
        price = li.xpath('p[3]/span[1]/text()')[0].replace('¥', '')
        
        #business
        business = li.xpath('p[@class="search_shangjia"]/a/text()') if len(li.xpath('p[@class="search_shangjia"]/a/text()')) > 0 else '当当自营'

        book_list.append({'name':bookName,'link':link,'price':price,'business':business,})

    book_list = sorted(book_list, key=lambda item:float(item['price']))
    for item in book_list:
        print(item['price'])
if __name__ == '__main__':
    # sn = input('PELEASE INPUT BOOK NUMBER')
    sn = "9787115428028" #书籍的编号
    spider(sn)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值