📜  用Python搜索书籍(1)

📅  最后修改于: 2023-12-03 15:27:09.563000             🧑  作者: Mango

用Python搜索书籍

Python 是一种流行的计算机编程语言,Python 拥有丰富的第三方库,使得使用 Python 进行网络爬虫和数据分析等非常方便。本文将介绍如何使用 Python 编写一个简单的脚本,从在线书籍商店搜索书籍,并获取书籍的相关信息。

准备工作

本脚本将使用 requests 库和 BeautifulSoup 库,如你电脑尚未安装这两个库,请使用 pip 安装:

pip install requests
pip install beautifulsoup4
编写代码

在代码中,我们将使用 requests 库向在线书店发送 HTTP 请求,获得响应,然后使用 BeautifulSoup 库解析响应网页,提取书籍信息。

import requests
from bs4 import BeautifulSoup

def search_book(keyword):
    url = 'https://www.books.com.tw/search/query'
    params = {
        'key': keyword,
        'cat': '',
        'sort': 'EACC'
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }
    res = requests.get(url, params=params, headers=headers)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    books = []
    for li in soup.select('li.item'):
        book = {
            'title': li.select_one('h3 a').text.strip(),
            'price': li.select_one('strong').text.strip(),
            'author': li.select_one('ul.item-info li').text.strip(),
            'link': li.select_one('a[href^="https://www.books.com.tw/products/"]').get('href')
        }
        books.append(book)
    return books

我们使用 search_book 函数搜索书籍,传入参数 keyword,返回包含所有找到的书籍信息的列表。

测试功能

我们可以测试该函数是否正常工作,搜索关键字为 Python

books = search_book('Python')
for book in books:
    print(book)

运行结果可能如下:

{'title': 'Python入门', 'price': 'NT$360', 'author': '洪錦魁', 'link': 'https://www.books.com.tw/products/0010773848'}
{'title': 'Python数据分析实战', 'price': 'NT$770', 'author': '王斌', 'link': 'https://www.books.com.tw/products/0010802475'}
{'title': 'Python网络爬虫从入门到实战', 'price': 'NT$660', 'author': '王斌', 'link': 'https://www.books.com.tw/products/0010803066'}
...
总结

Python 可以方便地进行数据分析和网络爬虫等,本文演示了如何用 Python 编写一个简单的脚本,搜索在线书籍商店中的书籍,并提取书籍信息。该脚本使用 requests 库发送 HTTP 请求,使用 BeautifulSoup 库解析 HTML 响应,提取书籍信息。