当前位置: 首页 > news >正文

python crawler web page

 npm install  or pip install 插件

import json
import time
from openpyxl import load_workbook
from pip._vendor import requests
from bs4 import BeautifulSoup
import pandas as pd
import re
import xlsxwriter

設置request header

header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/112.0.0.0 Safari/537.36'

定義

exl_name = "abc.xlsx"
sheetname ="sheet_doc"

pandas讀取Excel的URL

pdExl = pd.read_excel("abc.xlsx", engine="openpyxl",index_col=0,usecols='A:Q')

結果寫入Excel

workbook   = xlsxwriter.Workbook('abc.xlsx')worksheet = workbook.add_worksheet('contract')

requests抓取,BeautifulSoup分析

通過Regex提取核心內容

for index, _row in pdExl.iterrows():if _row['url'] is None:continueurl = 'https://www.abc.com'+_row['url']response = requests.get(url, headers=header)soup = BeautifulSoup(response.content, 'html.parser')soup.find(class_="other-info")info_element = soup.find(attrs={'class':'other-info'})if info_element is None or info_element.getText() is None:continueemail = re.search("\w+@\w+.\w+",info_element.getText())if email:worksheet.write(index, 17, email.group(0))else:print('No')workbook.close() 

把Json數據保存到Excel

在現有Excel的基礎上追加內容

response = requests.get(url, headers=header)jsonData = json.loads(response.text)df = pd.DataFrame.from_dict(jsonData["data"])exl_name = "abc.xlsx"
sheetname ="sheet_doc"if not os.path.exists(exl_name):df.to_excel(exl_name, sheet_name=sheetname, index=False)
else:df1 = pd.read_excel(exl_name)df_concat = pd.concat([df1, df], axis=0)df_concat.to_excel(exl_name)

http://www.lryc.cn/news/424346.html

相关文章:

  • 基于QT实现的TCP连接的网络通信(客户端)
  • Vue2中watch与Vue3中watch对比
  • Web 3 一些常见术语
  • 揭开数据分析中的规范性分析:从入门到精通
  • Linux文件IO
  • ccfcsp-202309(1、2、3)
  • 数据结构--数据结构概述
  • Spring中的BeanFactoryAware
  • Neo4j service is not installed
  • LeetCode 3132.找出与数组相加的整数 II:排序+3次尝试(nlog n)
  • 微信小程序--26(全局配置-1)
  • 汽车4S店管理系统-计算机毕设Java|springboot实战项目
  • bug的常见排查和分析思路以及相关的原因分类
  • Nature:7个提升科研产出的实用建议
  • react-native从入门到实战系列教程-页面之间的跳转
  • HarmonyOS应用开发者高级认证(一)
  • 【网络】套接字(socket)编程——UDP版
  • 一篇文章让你彻底掌握 Shell
  • Java中的Collection集合:深入理解与应用
  • Kubernetes-K8S
  • 简化文本处理流程,通用文字识别助力提升信息采集效率
  • 【网络】TCP协议通信的重要策略——滑动窗口,快重传,流量控制,拥塞控制,延时应答
  • 极狐GitLab CI/CD 如何构建镜像并推送到 azure 镜像仓库?
  • Leetcode—1143. 最长公共子序列【中等】
  • ZBrush笔刷介绍
  • React+AntDesign做一个日历,展示节假日,节气,并且在某几个时间上添加活动备注
  • 排序算法之梳排序
  • ESP8266 创建TCP连接
  • OceanBase内存管理小窍门
  • 【问题解决】git status中文文件名乱码