python crawler web page

ops/2024/9/24 10:10:10/

 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.ppmy.cn/ops/93649.html

相关文章

[cvpr 2024 目标检测 前沿研究 热点] cpvr 2024中与目标检测主题有关的论文

3D 目标检测 UniMODE:统一的单目 3D 对象检测 实现包括室内和室外场景的统一单目 3D 对象检测在机器人导航等应用中具有重要意义。然而,涉及数据的各种场景来训练模型会带来挑战,因为它们具有显著不同的特性,例如不同的几何特性…

Asymmetric Loss For Multi-Label Classification

从b站视频区看到的一篇论文,来自阿里。据他所说,他的多标签分类数据长尾最大到100:1,再做增广也没用,用了这篇论文的loss直接起飞。 链接在此 首先,常规的loss 既然是多标签分类,那么最基础的方法肯定是…

唐诡探案外传-MySQL误操作之“寻凶”

序幕:字符集被修改之谜 立秋后的第一天下午,太阳仍不知疲倦地炙烤着大地,办公室内的中央空调不停歇地鼓吹着冷风。某办公楼内,IT部门的阿祖被同事急匆匆地找来,说是系统出现了奇怪的bug,追查之下发现测试环…

【2】初识JVM

目录 一.什么是JVM 二.JVM的功能 2.1即时编译 三.常见的JVM​编辑 ​编辑 总结​编辑 一.什么是JVM 二.JVM的功能 2.1即时编译 三.常见的JVM 总结

无法加载到主类

说明:记录一次项目启动错误,如下: 错误信息:错误: 找不到或无法加载主类 com.hezy.App 原因: java.lang.ClassNotFoundException: com.hezy.App 解决:首先,在项目中勾选这个,显示target文件夹 …

刷题记录第108天-求一个数的平方根(精确到小数点后五位)

题目要求:给定一个数,求出它的平方根,精确到小数点后五位 思路:利用二分法,当mid*mid大于目标x时,证明mid就大于x的平方根,此时就可以缩小范围。结束条件由精确程度决定,比如题目要求的五位小数…

Vue3 v-bind 指令用法

在 Vue 3 中&#xff0c;v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同&#xff0c;但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法&#xff1a; 基本用法: <button v-bind:class"{ active: isActive }"…

Python学习笔记(六)

""" 演示对序列进行切片操作 """ # 切片&#xff1b;从一个序列中&#xff0c;取出一个子序列 # 语法[起始下标&#xff1a;结束下标&#xff1a;步长] # 这三个都不写也行&#xff0c;视为从头到尾步长为1 # 起始下标不写&#xff0c;视作从头开…