一.代码展示

from urllib.request import urlopen
from bs4 import BeautifulSoup
import pymysqldef GetContent():# 发出请求,获取html# 这里使用《环境法》作为例子html = urlopen("https://www.mee.gov.cn/ywgz/fgbz/fl/201404/t20140425_271040.shtml")# 将其转化为字符串html_text = bytes.decode(html.read())# 使用BeautifulSoup选取需要的内容soup=BeautifulSoup(html_text,features="lxml")# 观察可知法律条文都在p标签中content=soup.findAll("p")return contentdef insert(content):db = pymysql.connect("localhost", "root", "****", "name")# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()mainmsg="'"excmsg="'"for ind,i in enumerate(content):# 用最笨的方法检查# 求大佬指点if '章' not in i.text:if '第'and'条' in i.text:mainmsg="'"mainmsg+=i.textexcmsg="'"if '第'and'条' not in i.text:excmsg+=i.textif ind < len(content)-1:if '第'and'条' in content[ind+1].text:mainmsg+="'"excmsg+="'"sql="insert into 法条(main, extra) values("+mainmsg+","+excmsg+")"print(sql)try:# 执行sql语句cursor.execute(sql)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def main():content=GetContent()insert(content)if __name__=='__main__':main()

二.运行结果

三.主要问题

1)如何识别法条

使用BeautifulSoup美化后的content还是有很多赘余的内容

观察发现法条的格式基本为

第x条 ___第一句__

(__其他__)

第x+1条 ___第一句__

(__其他__)

....

于是可以想到使用if语句

大致思路:

首先排除标题也就是有“章”以及在第一条之前的内容

然后对法条:

如果第i条中有“第**条”那么这一条就是main

如果第i条中没有“第**条”那么这一条就是extra

如果第i+1条中有“第**条”那么这一段法条结束了

if '章' not in i.text:if '第'and'条' in i.text:mainmsg="'"mainmsg+=i.textexcmsg="'"if '第'and'条' not in i.text:excmsg+=i.textif ind < len(content)-1:if '第'and'条' in content[ind+1].text:mainmsg+="'"excmsg+="'"sql="insert into 法条(main, extra) values("+mainmsg+","+excmsg+")"

因此可以得到数据库格式:

使用main存放第一句,使用extra存放其他几句

这里可以优化一下,把“第**条”另开一列放,大致思路是

index=i.text.find("第")
first=i.text[:index]
second=i.text[index:]

但是我懒得写

∠( ᐛ 」∠)_

2)如何写入数据库

相比获取法条,将数据插入数据库较为简单

回想一下法条的格式

第**条 main

(extra)

第**+1条 main

(extra)

也就是说如果下一句中包含“第**条”就可以将当前条写入

sql="insert into 法条(main, extra) values("+mainmsg+","+excmsg+")"
try:# 执行sql语句cursor.execute(sql)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()

***相比

使用python爬虫爬取法律条文,并存入MYSQL相关推荐

  1. python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...

    本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chr ...

  2. python3爬取数据存入mysql_Python3爬虫爬取数据并存入mysql

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. python爬虫爬取古诗词内容,并存入mysql

    python爬虫爬取古诗词内容,并存入mysql 爬取结果展示: 代码如下: from urllib import request import re,os import pymysql import ...

  4. Python爬虫---爬取腾讯动漫全站漫画

    Python爬虫---爬取腾讯动漫全站漫画 操作环境 网页分析 明确目标 提取漫画地址 提取漫画章节地址 提取漫画图片 编写代码 导入需要的模块 获取漫画地址 提取漫画的内容页 提取章节名 获取漫画源 ...

  5. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  6. python爬虫爬取《斗破苍穹》小说全文

    网络爬虫的入门学习:python爬虫爬取小说全文 python爬虫首先导入基本爬虫库requests:import requests,安装命令pip install requests,使用pychar ...

  7. Python爬虫爬取链家网上的房源信息练习

    一 原链接:用Python爬虫爬取链家网上的房源信息_shayebuhui_a的博客-CSDN博客_python爬取链家 打开链家网页:https://sh.lianjia.com/zufang/  ...

  8. python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(二)

    上一章: python 爬虫爬取疫情数据,爬虫思路和技术你全都有哈(一.爬虫思路及代码) 第三步:数据清洗 清洗数据很简单,就是数据太乱的话,就得花些时间,所以一定要有一个好的方法,才能避免在清洗数据 ...

  9. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

最新文章

  1. LeetCode 1:Two Sum
  2. 深入理解linux文件系统( 理解inode与block,理解硬链接软链接,掌握恢复误删文件及其分析方法,掌握用户日志及其查询命令 )
  3. Java-逻辑运算符、位运算符
  4. Arduino笔记-定时器中断(MsTimer2库使用)
  5. python标准库sys_Python——标准库 Sys模块
  6. [PHP] 日期与时间
  7. OpenSatck Ironic实现裸机管理
  8. 6个面的骰子 标上1 2 3 4 5 6 投掷8次 求出现和的概率最大的数 ,就是这8次的和最有可能是多少...
  9. Bailian2929 扩号匹配【堆栈】
  10. hihocoder-13892016北京网赛07 Sewage Treatment(二分+网络流)
  11. 项目开发 —— 一页纸项目管理(OPPM)
  12. 人工智能、机器学习、神经网络、深度学习之间的关系
  13. ip地址自动获取背后的机制(udhcpc)
  14. [重要]宝塔面板Linux7.4.3/Windows6.8紧急更新
  15. vue 后台管理系统富文本组件(四)UEditor(集成 135 编辑器插件)
  16. 内存卡数据被格式化如何恢复?
  17. iOS 一个功能很全的视频播放器
  18. 解决MAC删除应用程序后依然残留的图标
  19. 消息队列 | java简单实现
  20. matlab公式上为什么会有问号,MathType公式显示问号怎么解决

热门文章

  1. 在U盘下安装ubuntu20.04,从U盘启动Linux系统
  2. 2. 产品的主线与产品的爆点
  3. C语言二维数组的赋值方式
  4. JDK/JVM/JRE的概念
  5. 大牛直播SDK-Windows推送端使用说明 1
  6. 2018.10.16 NOIP模拟 长者(主席树+hash)
  7. 【工业智能】天泽智云揭秘:人工智能如何打造“无忧风场”
  8. 【地雷开荒技能搭配】
  9. 【Bleak】一、简介及安装方法
  10. linux命令 怎么模糊查询,linux find命令如何实现模糊查询