欢迎访问宙启技术站
智能推送

如何使用Python写一个简单的爬虫函数

发布时间:2023-06-15 21:27:03

随着互联网信息的快速发展,爬虫技术越来越成为人们获取数据的重要手段。Python作为一种强大的编程语言,在爬虫方面也有很大的优势。在本文中,我们将介绍如何使用Python编写一个简单的网络爬虫函数。

一、爬虫的构成

一个爬虫通常包含以下几个部分:

1、获取网页源代码

2、解析HTML源代码

3、提取目标数据

4、存储数据

二、Python爬虫工具

Python爬虫工具有很多,比如Scrapy、BeautifulSoup、Requests等,本文采用Requests和BeautifulSoup来编写爬虫。

Requests是Python HTTP库,可以向网页发送请求并获取响应。

BeautifulSoup是一个解析HTML和XML文档的Python库,可以方便地提取出需要的数据。

三、编写爬虫函数

我们要编写的爬虫函数的功能是在电商网站上搜索商品,并提取出商品名称、价格和销量等信息。

首先,我们需要导入所需的库:

import requests
from bs4 import BeautifulSoup

接下来,定义一个爬虫函数:

def spider(keyword):
    url = 'https://search.jd.com/Search?keyword=' + keyword
    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'}
    response = requests.get(url, headers=headers)

    soup = BeautifulSoup(response.text, 'html.parser')
    items = soup.find_all('div', class_='gl-i-wrap')

    for item in items:
        name = item.find('div', class_='p-name').text.strip()
        price = item.find('div', class_='p-price').strong.i.text
        deal = item.find('div', class_='p-commit').strong.a.text[:-3]
        print('商品名称:', name)
        print('商品价格:', price)
        print('商品销量:', deal)
        print('--------------------------')

其中,参数keyword为搜索的关键词。

首先,我们构造搜索的URL,并添加headers。headers可以伪装成浏览器请求,避免被网站反爬虫机制识别。

然后,我们向网站发送请求,并获取响应。接着,我们使用BeautifulSoup库解析HTML源代码。

我们可以在网页开发者工具里找到商品信息的HTML标签,然后按照这个标签去提取目标信息。在这个例子中,商品名称、价格和销量分别被包裹在标签p-name、p-price和p-commit中。

最后,我们循环遍历所有的商品,并提取出我们需要的信息,包括名称、价格和销量等。之后存储或进一步处理即可。

四、测试爬虫函数

我们可以使用以下代码测试我们的爬虫函数:

spider('书包')

这个函数将搜索“书包”关键词,然后提取出所有商品的名称、价格和销量等信息,并打印输出。

可以看到,我们已经成功编写了一个简单的网络爬虫。这个爬虫可以向电商网站发送请求并从HTML源代码中提取出目标数据,是一种非常有用的数据获取方式。需要注意的是,爬虫在访问一个网站时,需要遵守网站的robots协议,避免给网站造成过大的压力。