beautifulsoup爬虫快速入门二—爬取鸡尾酒论坛数据实例

# -*- coding: utf-8 -*-

import requests
from bs4 import BeautifulSoup
from lxml import html
import xml
import xlrd
import xlwt
import os
from xlutils.copy import copy

typeList = ['Gin', 'Rum', 'Vodka', 'Tequila', 'Whisky', 'Brandy']

drinkurl = 'http://www.drink8.cn/forum-Gin-1.html'
drink = requests.get(drinkurl)
bdrink = BeautifulSoup(drink.content, 'lxml')


def changeUrl(typenum):
    index = 'http://www.drink8.cn/'
    numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    cUrl = []
    for n in numList:
        a = index + 'forum-' + typenum + '-' + str(n) + '.html'
        cUrl.append(a)
    return cUrl


class enterDetail():

    # 参数化URL地址
    def changeUrl(typenum):
        index = 'http://www.drink8.cn/'
        numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        cUrl = []
        for n in numList:
            a = index + 'forum-' + typenum + '-' + str(n) + '.html'
            cUrl.append(a)
        print(cUrl)
        return cUrl


    # 写入表格
    def detailUrl(drinkurl):

        drink = requests.get(drinkurl)
        bdrink = BeautifulSoup(drink.content, 'lxml')
        # 判断是否有文件,没有则创建一个表
        if os.path.exists('indexUrL.xls'):
            openXls = xlrd.open_workbook('indexUrL.xls')
            newXls = copy(openXls)
            newsheet = newXls.get_sheet(0)
            sheet1 = openXls.sheet_by_index(0)  # 获取第一张表
            nrows = sheet1.nrows
        else:
        #创建表格
            newXls = xlwt.Workbook()
            newsheet = newXls.add_sheet('Gin-Url', cell_overwrite_ok=True)

        datasp = bdrink.find_all('h3', class_='xw0')
        a = 0

        for i, j in enumerate(datasp):
            a = a + 1
            print(j.find('a')['href'])
            # 判断变量是否存在,有三种方法:返回True/False
            # 'nrows' in dir()/locals.keys()/vars.keys()
            if 'nrows' in dir():
                newsheet.write(nrows + i, 0, j.find('a')['href'])
            else:
                newsheet.write(i, 0, j.find('a')['href'])

        newXls.save('indexUrL.xls')


if __name__ == '__main__':
    enterDetail.changeUrl(typeList[0])

    for l in range(0,len(typeList)):
        for i in enterDetail.changeUrl(typeList[l]):

            enterDetail.detailUrl(i)
    print('ok,生成爬取地址')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用BeautifulSoup爬虫工具爬取淘宝客服的对话记录的步骤: 1. 打开淘宝客服的对话记录页面。进入淘宝客服页面,登录账号,点击“我的客服”,选择“对话记录”,进入对话记录页面。 2. 分析页面结构。使用Chrome浏览器,按下F12键,打开开发者工具。在Elements选项卡下,定位到对话记录的页面元素,分析页面结构,找到对话记录所在的HTML标签。 3. 使用BeautifulSoup解析页面。在Python中,使用BeautifulSoup库可以对HTML或XML文档进行解析。首先安装BeautifulSoup库,然后使用requests库获取对话记录页面的HTML代码,再将HTML代码传入BeautifulSoup的构造函数中,即可创建一个BeautifulSoup对象。 4. 提取对话记录数据。使用BeautifulSoup对象的find_all方法,找到对话记录所在的标签,并提取出所需的数据,如时间、客服姓名、买家姓名、对话内容等。 5. 存储数据。将提取的对话记录数据存储到本地文件中,如Excel表格或CSV文件。 6. 编写循环程序。由于淘宝客服的对话记录可能很多,需要编写循环程序,逐页爬取所有的对话记录数据。可以使用Python的while循环,每次循环后更新请求URL中的页码参数,直到爬取完所有的对话记录数据。 7. 防止反爬。在爬取淘宝客服对话记录时,需要注意防止反爬措施。可以使用代理IP和随机User-Agent等方法,使爬虫程序更难被识别和屏蔽。 8. 数据清洗和分析。对爬取到的数据进行清洗和分析,如去重、统计、可视化等操作,得出有用的结论和信息。 总之,使用BeautifulSoup爬虫工具爬取淘宝客服的对话记录需要一定的技术和经验,需要仔细分析页面结构和反爬措施,同时需要注意数据的合法性和隐私保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值