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:
        continue
    url = '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:
        continue
    email = 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值