python获取网页文本框内容_python识别html主要文本框

在抓取网页的时候只想抓取主要的文本框,例如 csdn 中的主要文本框为下图红色框:

抓取的思想是,利用 bs4 查找所有的 div,用正则筛选出每个 div 里面的中文,找到中文字数最多的 div 就是属于正文的 div 了。定义一个抓取的头部抓取网页内容:

import requests

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36',

'Host': 'blog.csdn.net'}

session = requests.session()

def getHtmlByRequests(url):

headers.update(

dict(Referer=url, Accept="*/*", Connection="keep-alive"))

htmlContent = session.get(url=url, headers=headers).content

return htmlContent.decode("utf-8", "ignore")

识别每个 div 中文字的正则:

import re

# 统计中文字数

def countContent(string):

pattern = re.compile(u'[\u1100-\uFFFD]+?')

content = pattern.findall(string)

return content

遍历每一个 div ,利用正则判断里面中文的字数长度,找到长度最长的 div :

# 分析页面信息

def analyzeHtml(html):

# 初始化网页

soup = BeautifulSoup(html, "html.parser")

part = soup.select('div')

match = ""

for paragraph in part:

content = countContent(str(paragraph))

if len(content) > len(match):

match = str(paragraph)

return match

得到主要的 div 后,提取里面的文字出来:

def main():

url = "http://blog.csdn.net/"

html = getHtmlByRequests(url)

mainContent = analyzeHtml(html)

soup = BeautifulSoup(mainContent, "html.parser")

print(soup.select('div')[0].text)

完整的代码如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup

import requests

import re

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36',

'Host': 'blog.csdn.net'}

session = requests.session()

def getHtmlByRequests(url):

headers.update(

dict(Referer=url, Accept="*/*", Connection="keep-alive"))

htmlContent = session.get(url=url, headers=headers).content

return htmlContent.decode("utf-8", "ignore")

# 统计中文字数

def countContent(string):

pattern = re.compile(u'[\u1100-\uFFFD]+?')

content = pattern.findall(string)

return content

# 分析页面信息

def analyzeHtml(html):

# 初始化网页

soup = BeautifulSoup(html, "html.parser")

part = soup.select('div')

match = ""

for paragraph in part:

content = countContent(str(paragraph))

if len(content) > len(match):

match = str(paragraph)

return match

def main():

url = "http://blog.csdn.net/"

html = getHtmlByRequests(url)

mainContent = analyzeHtml(html)

soup = BeautifulSoup(mainContent, "html.parser")

print(soup.select('div')[0].text)

if __name__ == '__main__':

main()

python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

python tkinter-按钮.标签.文本框、输入框

按钮 无功能按钮 Button的text属性显示按钮上的文本 tkinter.Button(form, text='hello button').pack() 无论怎么变幻窗体大小,永远都在窗体的最上 ...

python selenium无法清除文本框内容问题

正常是我们在清除文本框内容的时候,都会使用 clear() 函数进行清除,但是有时候会出现,清除完成后再点击查询时,文本框的内容会再次自动填充,这个时候我们可以选择以下方式: #清空查询条件drive ...

(2)python tkinter-按钮.标签.文本框、输入框

按钮 无功能按钮 Button的text属性显示按钮上的文本 tkinter.Button(form, text='hello button').pack() 无论怎么变幻窗体大小,永远都在窗体的最上 ...

Selenium示例集锦--常见元素识别方法、下拉框、文本域及富文本框、鼠标操作、一组元素定位、弹窗、多窗口处理、JS、frame、文件上传和下载

元素定位及其他操作 0.常见的识别元素的方法是什么? driver.find_element_by_id() driver.find_element_by_name() driver.find_ele ...

wxpython 支持python语法高亮的自定义文本框控件的代码

在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimp ...

Python Tkinter Entry(文本框)

Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...

python webdriver api-操作富文本框

操作富文本框-就是邮件正文部分,可以选字体啥的 第一种方式: 一般都是在iframe里,要切进去,一般是”html/body”,编辑之后,再切出来,然后再send_keys就完事儿 #encoding ...

Python+selenium之获取文本值和下拉框选择数据

Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_ ...

随机推荐

保存知乎收藏夹功能的NodeJS版本

前两天发现知乎收藏夹中的答案正在不断减少..看来需要保存一下了,但之前别人的方式是用chrome插件(浏览器无法自动保存本地文件)+wget前后端配合来完成这个工作的,而且还有一些缺点(比如保存的ht ...

Ubuntu Nginx下配置网站ssl实现https访问

最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

sql server2014各版本对比(连接)

简单的说,sql server 2014为企业版(全功能).BI版.标准版. SQL Server 2014 各个版本支持的功能 http://msdn.microsoft.com/zh-cn/lib ...

sql 随笔 2015-07-02

sql 自定义函数 --检查函数是否存在 if exists (select * from dbo.sysobjects where id = object_id(N'dbo.pTitleCase') ...

python通过webservice连接cmdbuild

cmdbuild的部署可以查看文章:http://20988902.blog.51cto.com/805922/1541289 部署成功后,访问http://192.168.1.1:8080/cmdb ...

Python基础类型

1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric ...

OS X EI Capitan 安装mysql-5.7.9

先去下载mysql-5.7.9-osx10.9-x86_64.dmg安装(一直下一步,输入密码即可)mysql-5.7.9-osx10.9-x86_64.pkg好了,启动MySQL服务. Untitl ...

Web移动端的常用组件库

normalize http://necolas.github.io/normalize.css/ 最受欢迎的css reset 保留有用的默认值,这个区别于其他的CSS resets 标准化大范围的 ...

[Swift]LeetCode575. 分糖果 | Distribute Candies

Given an integer array with even length, where different numbers in this array represent different k ...

CSS组合设计输入框和按钮生成自定义关键字查询栏

效果图: html代码:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值