使用python爬取网站数据并写入到excel中


前言

记录一下使用python将网页上的数据写入到excel中


一、使用python爬取网上数据并写入到excel中

要爬取数据的网站:

例子一:

https://ip.cn/yinhang.html (该网页有5个网页数据)
在这里插入图片描述
更多工具中查看页面源代码:
在这里插入图片描述
找到想要数据的位置
在这里插入图片描述
代码中:
在这里插入图片描述

例子二:

要爬取数据的网站:
https://www.00cha.com/tel.htm
在这里插入图片描述
页面源代码:
在这里插入图片描述
代码中:
在这里插入图片描述

由于我这边

二、工具类

import datetime
import openpyxl
import requests
from lxml import etree

def get_url_html(url):
    """
    定义一个函数, 新建一个空变量html_str, 请求网页获取网页源码,如果请求成功,则返回结果,如果失败则返回空值
    url: 入参参数, 指的是我们普通浏览器中的访问网址
    """
    html_str = ""
    try:
        """获取网页请求之后,返回的网页源码,类似于在浏览器中右击选择网页源码, 使用三方库etree把网页源码字符串转换成HTML格式"""
        r = requests.get(url, timeout=200)
        # 该操作为使用网页的编码方式,防止数据乱码
        r.encoding = r.apparent_encoding
        html_str = etree.HTML(r.text)
    except Exception as e:
        print(e)
    return html_str

# 获取ipcn网站上的数据
def get_ip_cn_data(html_str):
    """
    定义一个函数, 新建一个变量pdata_list初始值为空列表(也可以叫空数组), 在网页源码中匹配出每一行的内容
    html_str: 入参参数, 指的是网页源码,HTML格式的
    """
    data_list = []
    try:
        """查找网页源码中的xpath,找到每一行的位置"""
        option = html_str.xpath('//div[@class="layui-card ip_card"]//div[@class="layui-card-body"]/table/tbody[1]//tr')
        for op in option:
            """根据每一行,匹配出第一列的字符串,比如'2021年10月20日',再通过正则匹配出它的数字部分用'/'隔开,则把字符串转换成2021/10/20"""
            # col1 = "/".join(re.findall("\d+", op.xpath("./td[1]/text()")[0]))
            """根据每一行,匹配出其他4列的数字字符串,然后通过函数转换,将字符串转换成浮点类型, 获取失败则为空值"""
            try:
                col1 = str(op.xpath("./td[1]/text()")[0])
            except:
                col1 = ""
            try:
                col2 = str(op.xpath("./th/text()")[0])
            except:
                col2 = ""
            data_list.append([col2.strip(), col1.strip()])
    except Exception as e:
        print(e)
    return data_list

# 获取00cha网页上的数据
def get_00cha_data(html_str):
    # data_list中的数据为未删除空白行的数据
    data_list = []
    # not_null_list中的数据为删除空白行后的数据
    not_null_list = []
    try:
        """查找网页源码中的xpath,找到每一行的位置"""
        # 根据网页中的源码,确认表格所在的div等数据
        option = html_str.xpath('//div[@class="searchnr"]/table//tr')
        for op in option:
            """根据每一行,匹配出第一列的字符串,比如'2021年10月20日',再通过正则匹配出它的数字部分用'/'隔开,则把字符串转换成2021/10/20"""
            # col1 = "/".join(re.findall("\d+", op.xpath("./td[1]/text()")[0]))
            """根据每一行,匹配出其他4列的数字字符串,然后通过函数转换,将字符串转换成浮点类型, 获取失败则为空值"""
            try:
                col1 = str(op.xpath("./td[1]/a/text()")[0])
            except:
                col1 = ""
            try:
                col2 = str(op.xpath("./td[2]/text()")[0])
            except:
                col2 = ""
            try:
                col3 = str(op.xpath("./td[3]/a/text()")[0])
            except:
                col3 = ""
            try:
                col4 = str(op.xpath("./td[4]/text()")[0])
            except:
                col4 = ""

            data_list.append([col1.strip(), col2.strip()])
            data_list.append([col3.strip(), col4.strip()])

    except Exception as e:
        print(e)

    for index, value in enumerate(data_list):
        if value[1] != '':
            if value[0] != '':
                not_null_list.append(value)

    return not_null_list


def write_excel(file_name, write_list):
    """
    定义一个函数, 将每一行的数据汇总的数组,进行遍历,依次写到excel中
    file_name: 入参参数, 指的是写入excel的名字
    write_list: 入参参数, 指的是写入excel的每一行汇总的数组
    """
    full_excel = openpyxl.Workbook()
    full_sheet = full_excel.active
    for i in range(0, len(write_list)):
        full_sheet.append(write_list[i])
    full_excel.save(file_name)


# 主函数
if __name__ == '__main__':
    start_time = datetime.datetime.now()

    """
    URL的规律是XXXX+当前日期+XXXX+当前页号
    """
    now_date = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
    every_page_result_list = [["pub_phone_number", "pub_phone_desc"]]  # 空数组接受每一页的所有数据行汇总数据
    compare_result_list = []

    """循环每一页获取数据"""
    # pages = 78
    pages = 1
    # 获取urls中的数据
    for index in range(1, pages+1):
        urls = {"https://ip.cn/yinhang.html" , "https://ip.cn/gonggong.html" , "https://ip.cn/jiudian.html" , "https://ip.cn/kuaidi.html" , "https://ip.cn/waimai.html"}
        for url in urls:
          every_page_result_list = every_page_result_list + get_ip_cn_data(get_url_html(url))

        url = "https://www.00cha.com/tel.htm"
        compare_result_list = get_00cha_data(get_url_html(url))

        # 去除compare_result_list和every_page_result_list中电话相同的数据
        for index2, value2 in enumerate(compare_result_list):
            for index3, value3 in enumerate(every_page_result_list):
                if value2[0] == value3[0]:
                    compare_result_list.pop(index2)

        every_page_result_list = every_page_result_list + compare_result_list
        # 将数据写到指定路径下的csv文件中
        write_excel(r"D:\PubTel"+now_date+".csv", every_page_result_list)

    end_time = datetime.datetime.now()
    print(f"耗时总共{(end_time - start_time).seconds}秒")





总结

由于我这边的业务需要去除两个网站中相同的手机号,所以做了一些处理。java程序员第一次接触python,大家可以根据自己的需求修改里面具体的业务逻辑

呜昂王0521
关注 关注
  • 10
    点赞
  • 166
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python】如何从一个网页抓取数据并生成excel
wjianwei666的专栏
01-12 457
df = pd.DataFrame(data_list, columns=['列1', '列2', '列3']) # 替换为实际的列名。columns = row.find_all('td') # 假设每行的数据单元格使用 标签。整理数据: 将提取的数据整理成适合存储到 Excel数据结构,例如 Pandas 的 DataFrame。生成Excel文件: 使用 Pandas 将整理好的数据保存为 Excel 文件。你需要将 '你的目标网页URL' 替换为你要抓取数据网页URL。
仅三步完成python抓取网页数据EXCEL
yeangqing的博客
07-18 6379
仅三步完成python抓取网页数据EXCEL
python抓取网页内容到excel,python爬虫抓取网页数据
最新发布
jaskonyee的博客
03-23 417
大家好,本文将围绕python网页数据抓取淘宝完整代码展开说明,python抓取网页数据写入excel是一个很多人都想弄明白的事情,想搞清楚用python抓取一个网页的xhr需要先了解以下几个事情。本文讲的是利用Python实现网页数据抓取的三种方法;’表示匹配0次或者1次前面出现的正则表达式。Lxml是基于libxml2这一XML解析库的Python封装。Beautiful Soup是一个非常流行的Python模块。该模块可以解析网页,并提供定位内容的便捷接口。表2.1总结了每种抓取方法的优缺点。
python抓取网页内容到excel,python如何抓取网页数据
nannannanmu的博客
03-09 273
大家好,本文将围绕python 爬虫抓取网页数据导出excel展开说明,python抓取网页数据写入txt是一个很多人都想弄明白的事情,想搞清楚python爬取网页数据存入excel需要先了解以下几个事情。
Python 实战: 爬虫抓取网站数据 处理后存入Excel表_爬虫编程
12-30
我们需要在一个网站上对网站网页的所有的要素,进行逐一检查核对,1W多要素看的人眼花缭乱,效率慢,易出错。 我们使用的技术有: 1.python 爬虫技术selenium和requests 2.python Excel表格处理 3.http请求的分析 4.python如何处理Json数据 处理办法:python网站爬取所有要素,程序加入判断规则,输出成Excel表格。原来3天的工作量,现在1min内搞定。
python爬取数据并存到excel,python爬虫保存数据
神经网络爱好者
03-13 516
在大家学习Python爬虫的过程,必然少不了将爬取数据进行存储,现在最常存储的方式有存储TXT文本、CSV文件、Excel文件、数据仓库这三种,今天我们就来一一介绍一下如何存储。大家好,给大家分享一下python爬取数据怎么将其放入excel文件里,很多人还不知道这一点。以上就是python爬取数据存储的各种方法,大家可以根据学习过程的需要随时切换使用来不断完善技能。--每天一小步、未来一大步!
利用Python爬取数据存入Excel表格
web开发与Python
09-30 6920
分析要爬取的内容的网页结构: demo.py: import requests #requests是HTTP库 import re from openpyxl import workbook # 写入Excel表所用 from openpyxl import load_workbook # 读取Excel表所用 from bs4 import BeautifulSoup as bs ...
Python 实战: 爬虫抓取网站数据 处理后存入Excel
热门推荐
pwy1198156945的专栏
12-30 1万+
项目场景: Python是我接触过的,相比C++、java,是一门非常简单的编程语言。 对于办公室白领,在未来是一门必须掌握的技巧,可以帮你自动化处理数据。 废话少说,上干货! 本期主要给大家分享一个我工作的一次使用,希望对你以后工作有所帮助,提高效率,解放劳动力。 问题描述: 我们需要在一个网站上对网站上所有的要素,进行逐一检查,1W多要素看的人眼花缭乱,效率慢,易出错。 处理办法:python网站爬取所有要素,程序加入判断规则,输出成Excel表格。原来3天的工作量,现在1min内搞定.
Python爬取网页表格数据写入excelNo.7
蒙强的博客
02-21 1万+
Python爬取网页表格数据写入Excel import requests from bs4 import BeautifulSoup import xlwt #请求headers 模拟谷歌浏览器访问 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple......
利用python爬取信息并保存到excel
wer875442的博客
12-19 1万+
哈喽 ,大家好!今天小编为大家带来好消息呢 我们应该如何把爬取的信息保存到excel呢。首先我们讲存入excel经常用到的库,xlrd,xlwt,xlwings,openpyxl,xlsxwriter等等有很多,但是我用的是openpyxl这个库去保存的信息到excel。 openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。 如果有同学没下载或者不知道在哪下载 ,小编告诉你哦 windows +R 打开cmd 输入命令 pip install o.
python得到与处理结果怎么保存到excel-python爬取数据保存到Excel
weixin_39531037的博客
11-11 2583
1 #-*- conding:utf-8 -*-23 #1.两页的内容4 #2.抓取每页title和URL5 #3.根据title创建文件,发送URL请求,提取数据6 importrequests7 from lxml importetree8 importtime, random, xlwt91011 #专家委员会成员的xpath("//tbody//tr[@height="...
python爬取ajax网页,用json形式获取数据,并存入excel
04-17
某疾病下SNP与gene关联关系下载,采用python爬取ajax网页,用json形式获取数据,并存入excel。亲测可行。主要是获得https的隐藏url, 具体百度都有。
python爬取内容存入Excel实例
09-19
主要为大家详细介绍了python爬取内容存入Excel实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Python爬取豆瓣top250电影数据,并导入MySQL,写入excel
12-21
Python爬取豆瓣top250电影数据,并导入MySQL,写入excel 具体数据:电影链接、电影名称、电影评分、评分人数、电影概括 import pymysql import xlwt from bs4 import BeautifulSoup from urllib import request ...
Python爬取全国区划信息包括excel数据.rar
02-10
包括完整的python代码用于爬取国家统计局区划数据(到村级),支持全部爬取和按条件爬取,同时支持mongodb和sqlserver两种存储方式,附带爬取成功的2020版区划数据
python爬取写入excel.txt
04-07
python爬取写入excelpython爬取写入excelpython爬取写入excel
爬取拉勾网的数据并保存到excel
10-25
这个例子用python爬取拉勾网上的数据,并保存到excel,注意header数据最好自己用浏览器得到,并替换一下。
python练习--获取网页数据写入excel保存
whhwch1986的博客
02-26 868
python练习:获取网页数据,并通过openpyxl模块写入excel
python爬取网页数据实时写入excel
05-16
可以通过使用Python的requests库和pandas库,从网页获取数据并将其写入Excel文件。 首先,你需要安装这两个库。可以使用以下命令进行安装: ```python pip install requests pandas ``` 接下来,你可以使用requests库的get()方法来获取网页的内容。例如,以下代码可以获取百度首页的HTML代码: ```python import requests url = 'https://www.baidu.com' response = requests.get(url) html = response.content ``` 然后,你可以使用pandas库的read_html()方法从HTML代码提取表格数据。例如,以下代码可以提取百度首页的第一个表格: ```python import pandas as pd dfs = pd.read_html(html) df = dfs[0] ``` 最后,你可以使用pandas库的to_excel()方法将数据写入Excel文件。例如,以下代码可以将数据写入名为“data.xlsx”的Excel文件: ```python df.to_excel('data.xlsx', index=False) ``` 完整代码如下: ```python import requests import pandas as pd url = 'https://www.baidu.com' response = requests.get(url) html = response.content dfs = pd.read_html(html) df = dfs[0] df.to_excel('data.xlsx', index=False) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 使用python爬取网站数据并写入到excel中 22544
  • RabbitMQ:消费者ACK机制、生产者消息确认 4037
  • Springboot 整合 RabbitMQ【rabbitmq介绍:安装,下载,创建队列、交换机,5种工作模式】 3223
  • splunk官方文档学习笔记【安装,添加数据,搜索功能,管道命令】这一篇带你了解splunk 2401
  • 推荐一个强大的工具类Hutool(多级树结构,加密算法工具类,日期工具类,数据类型转换工具类,Base64工具类等) 1613

最新评论

  • splunk官方文档学习笔记【安装,添加数据,搜索功能,管道命令】这一篇带你了解splunk

    拾玖×: 你好师傅我在阿里云的服务器上安装时最后一步 Waiting for web server at http://127.0.0.1:8000 to be available.....................................................................................................出现这个 阿里云服务的8000端口已经开放 请问这是怎么回事 一直不成功

  • Springboot 整合 RabbitMQ【rabbitmq介绍:安装,下载,创建队列、交换机,5种工作模式】

    呜昂王0521: rabbitmq生产者消息确认,消费者ACK机制已更新,可以参考:https://blog.csdn.net/m0_48325361/article/details/123378083?spm=1001.2014.3001.5501

  • 推荐一个强大的工具类Hutool(多级树结构,加密算法工具类,日期工具类,数据类型转换工具类,Base64工具类等)

    VM980715CD: 火钳刘明

  • 推荐一个强大的工具类Hutool(多级树结构,加密算法工具类,日期工具类,数据类型转换工具类,Base64工具类等)

    VM980715CD: 写的真好,多多更新啊大佬

  • 使用python爬取网站数据并写入到excel中

    呜昂王0521: 参考文章:https://blog.csdn.net/weixin_43046974/article/details/120904826?spm=1001.2014.3001.5502

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • splunk官方文档学习笔记【安装,添加数据,搜索功能,管道命令】这一篇带你了解splunk
  • splunk javaSDK解决连接Connection reset问题
  • RabbitMQ:消费者ACK机制、生产者消息确认
2022年6篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源起名八字网站汽配公司起名大全免费流氓艳遇记起名子女孩赵薇事件是怎么回事2021幼崽护养协会女孩起带木的名字给公司起名字大全集字绝爱动漫生肖猪孩子起名宜用字公司起名字带耀字开头的奶茶店怎麽起名小孩起名评分零红蝶火影忍者300萌宝来袭总裁爹地太难缠接招吧前辈在哪个平台看陛下他总是假正经储蓄理财石家庄宝宝起名男孩童姓起名武汉归元寺给闺女起个小名叫什么名字好听微信发起匿名投票的人看得到吗水暖店起名字大全阴阳五行起名赵亮电视剧名扬天下网起名字笔画8划的字有起名小饭店起个什么名字的淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化