Python实现网页敏感词批量查找

本例要查找的网页保存在”D:\test.xlsx”文件中第一列,要查找的敏感词为“第一”“质量”“最”(可根据实际需要修改敏感词内容和数量),运行代码后查找结果保存在”D:\test.xlsx”文件中第二列,以下代码已经在Python27中调试通过: 运行后的”D:\test.xlsx”文件如下图:


本例要查找的网页保存在”D:\test.xlsx”文件中第一列,要查找的敏感词为“第一”“质量”“最”(可根据实际需要修改敏感词内容和数量),运行代码后查找结果保存在”D:\test.xlsx”文件中第二列,以下代码已经在Python27中调试通过:
运行后的”D:\test.xlsx”文件如下图:

Python)

#coding=utf-8

import os
import re
import requests

from requests import exceptions
from openpyxl import Workbook
from openpyxl import load_workbook


def get_html(url):
    headers = {
        'User-Agent': 'Mozilla/5.0(Windows NT 10.0; WOW64; Trident/7.0; rv:11.0)\
    like Gecko'
    }  # 模拟浏览器访问
    i = 0
    t1=10
    while i < 3: #三次重连
     try:
         r = requests.get(url,timeout=t1, headers = headers)       #请求访问网站
         r.raise_for_status()
         r.encoding = r.apparent_encoding
         #print(r.status_code)
         if r.status_code == 200:
            return r.text
         else:
             return ''
     except requests.RequestException as e:
         print(e)
        #print(url)
         return ''
     i += 1

def rexcel(excelFile): #读excel文件
    list1 = []
    if not os.path.exists(excelFile):
        print("文件不存在")
        return list1
    wb = load_workbook(excelFile)
    ws = wb.active
    for j in range(ws.max_row):
           r = j + 1
           list1.append(ws.cell(row=r, column=1).value)
    return  list1

def wexcel(excelFile,list2): #写excel文件
    if not os.path.exists(excelFile):
        print("文件不存在")
        return 0
    wb = load_workbook(excelFile)
    ws = wb.active
    for row in range(len(list2)):
        #print(row)
        r = row + 1
        ws.cell(row=r, column=2).value = list2[row]
        if row>1048575:
            break
    wb.save(excelFile)
    return  1



if __name__ == '__main__': #程序入口
    excelFile = 'D:/test.xlsx'
    list1=rexcel(excelFile)
    #print(list1[2])
    pattern = \
        ur'([\u4e00-\u9fa5]{1,}(第一|质量|最))' #敏感词之间用|分隔
    re_compile = re.compile(pattern)

    list2 = []
    for m in range(len(list1)):
        content = ''
        s1=list1[m]
        if s1==None:
            break

        if s1[0:4]=='http':
            webcontent = get_html(s1)
        else:
            continue
            #print webcontent
        if webcontent == '':
             list2.append(u'获取页面数据失败')
             continue
        else:
             for n in re_compile.finditer(webcontent):
                   content = content + n.group() + ';'

             list2.append(content)
            #print(list2)
    wexcel(excelFile,list2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值