美文网首页
Python第三天(spider_当当)

Python第三天(spider_当当)

作者: 胖胖胖虎 | 来源:发表于2020-01-06 18:26 被阅读0次

当当网图书爬虫

import requests
from lxml import html
1.获取目标站点的源代码
url = 'http://search.dangdang.com/?key=9787115428028&act=input'
html_data = requests.get(url).text
2.xpath提取
selector = html.fromstring(html_data)
#获取所有图书的价格
#price = selector.xpath('//div[@id="search_nature_rg"]/ul/li[1]/p[3]/span[1]/text()')
#print(price)
ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
print(len(ul_list))
3.遍历
for li in ul_list:
    # 价格
    price = li.xpath('p[3]/span[1]/text()')
    print(price)

    # 书名
    name = li.xpath('p[1]/a[1]/text()')
    print(name)

    # 购买链接
    link = li.xpath('p[1]/a[1]/@href')
    print(link)

    # 店铺名称
    store = li.xpath('p[4]/a[1]/text()')
    print(store)

当当网爬虫2.0

import requests
from lxml import html
import pandas as pd
def spider(isbn):
    book_list = []
    # 获取目标站点的源代码
    # 如何格式化字符串-format方法
    url = 'http://search.dangdang.com/?key={}&act=input'.format(isbn)
    html_data = requests.get(url).text
    #  xpath提取
    selector = html.fromstring(html_data)
    ul_lsit = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
    print('共有{}家售卖此书'.format(len(ul_lsit)))
    # 遍历
    for li in ul_lsit:
        # 价格
        price = li.xpath('p[3]/span[1]/text()')[0]
        price = price.replace('¥', '')
        price = float(price)
        # 书名
        book_name = li.xpath('p[@class="name"]/a/@title')[0]
        # 购买链接
        link = li.xpath('p[@class="name"]/a/@href')[0]
        # 店铺名称
        store = li.xpath('p[@class="search_shangjia"]/a[1]/text()')
        if len(store) == 0:
            store = '当当自营'
        else:
            store = store[0]
        book_list.append({
            'book_name': book_name,
            'link':link,
            'price':price,
            'store':store
        })
    # 排序
    book_list.sort(key=lambda x: x['price'], reverse=True)
    # 重新遍历显示每家商铺的信息
    for book in book_list:
        print(book)
    # 存储 csv
    df = pd.DataFrame(book_list)
    df.to_csv('dangdang.csv')
isbn = input('请输入书号')
# 9787115428028
spider(isbn)

相关文章

  • Python第三天(spider_当当)

    当当网图书爬虫 1.获取目标站点的源代码 2.xpath提取 3.遍历 当当网爬虫2.0

  • Python第三天(spider_豆瓣)

    豆瓣top250电影爬虫 未完待续/...

  • python大闯关(0-4)

    最近在找python对应的学习实例时,看到了一个古老的游戏,方便大家边玩边学: 当当当当,python chall...

  • 当当当~第三天打卡啦

    早上一袋酸奶加燕麦,半个小面包。 中午一袋酸奶 晚上一袋酸奶加一根香蕉。 突然迷上了吃播~ 啊啊啊啊~好饿啊,好想...

  • 第三天

    当当当 实训已经第三天了 不知不觉的,实训已经来到了第三天,充实总是让人觉得时间过得飞快。老师今天上午首先讲了昨天...

  • 当当当当当当当

    多年前,一个夏天的清晨,我蒙着毯子在床上躺着,我迷迷糊糊的睡着,鸟儿啾啾的声音叫不醒我,雀儿喳喳的声音唤不醒我,斜...

  • 排序与筛选

    Excel特训营开营第三天啦~ 当当当当,今天的主题是-不为人知的排序和筛选的高级用法 排序和筛选功能是数据处理时...

  • 简年3:想把我唱给你听

    当当当当!~二十五糊窗户,今天已经是第三天啦!舌头好像已经渐渐习惯每晚与简书约会的日子了。昨天给大家推荐了三首比较...

  • Python-03

    第三天继续加油! 参考 : 庞雪峰Python教程 Github-Python资源大全 Python中文资源大全 ...

  • 当当当当

    一个年轻的宝妈~[耶] 被信任的感觉真好[转圈]

网友评论

      本文标题:Python第三天(spider_当当)

      本文链接:https://www.haomeiwen.com/subject/zlscactx.html