[python] 常用正则表达式爬取网页信息及分析HTML标签总结

转http://blog.csdn.net/Eastmount/article/details/51082253

2016-04-07 06:13 3615人阅读 评论(4) 收藏 举报
 分类:
Python爬虫(23)  Python基础知识(17) 

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~

这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法。它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~
当然如果会Selenium基于自动化测试爬虫、BeautifulSoup分析网页DOM节点,这就更方便了,但本文更多的是介绍基于正则的底层爬取分析。

涉及内容如下:

  • 常用正则表达式爬取网页信息及HTML分析总结

    • 1.获取<tr></tr>标签之间内容
    • 2.获取<a href..></a>超链接之间内容
    • 3.获取URL最后一个参数命名图片或传递参数
    • 4.爬取网页中所有URL链接
    • 5.爬取网页标题title两种方法
    • 6.定位table位置并爬取属性-属性值
    • 7.过滤<span></span>等标签
    • 8.获取<script></script>等标签内容
    • 9.通过replace函数过滤<br />标签
    • 10.获取<img ../>中超链接及过滤<img>标签

推荐基础文章:Python正则表达式指南 - AstralWind

------------------------------------------------------------------------------------------------------------------------------

1.获取<tr></tr>标签之间内容

该部分主要是通过正则表达式获取两个标签之间的内容,通常这种标签都是成对出现的。
开始标签如:<tr>、<th>、<td>、<a>、<table>、<div>...
后缀标签如:</tr>、</th>、</td>、</a>、</table>、</div>...

核心代码:
        res_tr = r'<tr>(.*?)</tr>'
        m_tr =  re.findall(res_tr,language,re.S|re.M)

例子:

  1. # coding=utf-8
  2. import re
  3. language = '''''<tr><th>性別:</th><td>男</td></tr><tr>'''
  4. #正则表达式获取<tr></tr>之间内容
  5. res_tr = r'<tr>(.*?)</tr>'
  6. m_tr =  re.findall(res_tr,language,re.S|re.M)
  7. for line in m_tr:
  8. print line
  9. #获取表格第一列th 属性
  10. res_th = r'<th>(.*?)</th>'
  11. m_th = re.findall(res_th,line,re.S|re.M)
  12. for mm in m_th:
  13. print unicode(mm,'utf-8'),  #unicode防止乱
  14. #获取表格第二列td 属性值
  15. res_td = r'<td>(.*?)</td>'
  16. m_td = re.findall(res_td,line,re.S|re.M)
  17. for nn in m_td:
  18. print unicode(nn,'utf-8')

输出如下所示:

  1. >>>
  2. <th>性別:</th><td>男</td>
  3. 性別: 男
  4. >>>

python通过re模块提供对正则表达式的支持。使用re的一般步骤是先将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。

findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]): 搜索string,以列表形式返回全部能匹配的子串。其中RE的常见参数包括:
        re.I(re.IGNORECASE): 忽略大小写(括号内是完整写法)
        re.M(re.MULTILINE): 多行模式,改变'^'和'$'的行为
        re.S(re.DOTALL): 点任意匹配模式,改变'.'的行为

------------------------------------------------------------------------------------------------------------------------------

2.获取超链接<a href=..></a>之间内容

通常在使用正则表达式时,需要分析网页链接,获取URL或网页内容。核心代码如下:
        res = r'<a .*?>(.*?)</a>'
        mm =  re.findall(res, content, re.S|re.M)
        urls=re.findall(r"<a.*?href=.*?<\/a>", content, re.I|re.S|re.M)
例子:

  1. # coding=utf-8
  2. import re
  3. content = '''''
  4. <td>
  5. <a href="https://www.baidu.com/articles/zj.html" title="浙江省">浙江省主题介绍</a>
  6. <a href="https://www.baidu.com//articles/gz.html" title="贵州省">贵州省主题介绍</a>
  7. </td>
  8. '''
  9. #获取<a href></a>之间的内容
  10. print u'获取链接文本内容:'
  11. res = r'<a .*?>(.*?)</a>'
  12. mm =  re.findall(
  13. res, content, re.S|re.M)
  14. for value in mm:
  15. print value
  16. #获取所有<a href></a>链接所有内容
  17. print u'\n获取完整链接内容:'
  18. urls=re.findall(r"<a.*?href=.*?<\/a>", content, re.I|re.S|re.M)
  19. for i in urls:
  20. print i
  21. #获取<a href></a>中的URL
  22. print u'\n获取链接中URL:'
  23. res_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"
  24. link = re.findall(res_url ,  content, re.I|re.S|re.M)
  25. for url in link:
  26. print url

输出如下图所示:

  1. >>>
  2. 获取链接文本内容:
  3. 浙江省主题介绍
  4. 贵州省主题介绍
  5. 获取完整链接内容:
  6. <a href="https://www.baidu.com/articles/zj.html" title="浙江省">浙江省主题介绍</a>
  7. <a href="https://www.baidu.com//articles/gz.html" title="贵州省">贵州省主题介绍</a>
  8. 获取链接中URL:
  9. https://www.baidu.com/articles/zj.html
  10. https://www.baidu.com//articles/gz.html
  11. >>>

当然如果是通过Selenium分析DOM树结构获取href对应的url或title中的值,其核心代码如下所示,这里主要是给大家做个对比,理解不同方法的优势:
      driver.get(link) 
      elem = driver.find_elements_by_xpath("//div[@class='piclist']/tr/dd[1]")   
      for url in elem:    
            pic_url = url.get_attribute("href")    
            print pic_url

参考文章:[python爬虫] Selenium定向爬取虎扑篮球海量精美图片

------------------------------------------------------------------------------------------------------------------------------

3.获取URL最后一个参数命名图片或传递参数

通常在使用Python爬取图片过程中,会遇到图片对应的URL最后一个字段通常用于命名图片,如虎扑孙悦妻子图片:
        http://i1.hoopchina.com.cn/blogfile/201411/11/BbsImg141568417848931_640*640.jpg
此时需要通过该URL的"/"后面的参数命名图片,则方法如下:

  1. urls = "http://i1.hoopchina.com.cn/blogfile/201411/11/BbsImg141568417848931_640*640.jpg"
  2. values = urls.split('/')[-1]
  3. print values

输出如下所示:

  1. >>>
  2. BbsImg141568417848931_640*640.jpg
  3. >>>

在使用Python获取GET方法的URL链接中,还可能存在传递参数的值。
此时获取参数方法如下:

  1. url = 'http://localhost/test.py?a=hello&b=world'
  2. values = url.split('?')[-1]
  3. print values
  4. for key_value in values.split('&'):
  5. print key_value.split('=')

输出如下所示:

  1. >>>
  2. a=hello&b=world
  3. ['a', 'hello']
  4. ['b', 'world']
  5. >>>

------------------------------------------------------------------------------------------------------------------------------

4.爬取网页中所有URL链接

在学习爬虫过程中,你肯定需要从固有网页中爬取URL链接,再进行下一步的循环爬取或URL抓取。如下,爬取CSDN首页的所有URL链接。

  1. # coding=utf-8
  2. import re
  3. import urllib
  4. url = "http://www.csdn.net/"
  5. content = urllib.urlopen(url).read()
  6. urls = re.findall(r"<a.*?href=.*?<\/a>", content, re.I)
  7. for url in urls:
  8. print unicode(url,'utf-8')
  9. link_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", content)
  10. for url in link_list:
  11. print url

输出如下所示:

  1. >>>
  2. <a href="https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn">登录</a>
  3. <a href="http://passport.csdn.net/account/mobileregister?action=mobileRegister">注册</a>
  4. <a href="https://passport.csdn.net/help/faq">帮助</a>
  5. ...
  6. https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn
  7. http://passport.csdn.net/account/mobileregister?action=mobileRegister
  8. https://passport.csdn.net/help/faq
  9. ...
  10. >>>

------------------------------------------------------------------------------------------------------------------------------

5.爬取网页标题title两种方法

获取网页标题也是一种常见的爬虫,如我在爬取维基百科国家信息时,就需要爬取网页title。通常位于<html><head><title>标题</title></head></html>中。
下面是爬取CSDN标题的两种方法介绍:

  1. # coding=utf-8
  2. import re
  3. import urllib
  4. url = "http://www.csdn.net/"
  5. content = urllib.urlopen(url).read()
  6. print u'方法一:'
  7. title_pat = r'(?<=<title>).*?(?=</title>)'
  8. title_ex = re.compile(title_pat,re.M|re.S)
  9. title_obj = re.search(title_ex, content)
  10. title = title_obj.group()
  11. print title
  12. print u'方法二:'
  13. title = re.findall(r'<title>(.*?)</title>', content)
  14. print title[0]

输出如下所示:

  1. >>>
  2. 方法一:
  3. CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台
  4. 方法二:
  5. CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台
  6. >>>

------------------------------------------------------------------------------------------------------------------------------

6.定位table位置并爬取属性-属性值

如果使用Python库的一些爬取,通常可以通过DOM树结构进行定位,如代码:
    login = driver.find_element_by_xpath("//form[@id='loginForm']") 
参考文章:[Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

但如果是正则表达式这种相对传统傻瓜式的方法,通过通过find函数寻找指定table方法进行定位。如:获取Infobox的table信息。
通过分析源代码发现“程序设计语言列表”的消息盒如下:
<table class="infobox vevent" ..><tr><th></th><td></td></tr></table>

  1. start = content.find(r'<table class="infobox vevent"') #起点记录查询位置
  2. end = content.find(r'</table>')
  3. infobox = language[start:end]
  4. print infobox

print infobox 输出其中一门语言ActionScript的InfoBox消息盒部分源代码如下:

  1. <table class="infobox vevent" cellspacing="3" style="border-spacing:3px;width:22em;text-align:left;font-size:small;line-height:1.5em;">
  2. <caption class="summary"><b>ActionScript</b></caption>
  3. <tr>
  4. <th scope="row" style="text-align:left;white-space:nowrap;;;">发行时间</th>
  5. <td style=";;">1998年</td>
  6. </tr>
  7. <tr>
  8. <th scope="row" style="text-align:left;white-space:nowrap;;;">实现者</th>
  9. <td class="organiser" style=";;"><a href="/wiki/Adobe_Systems" title="Adobe Systems">Adobe Systems</a></td>
  10. </tr>
  11. <tr>
  12. <tr>
  13. <th scope="row" style="text-align:left;white-space:nowrap;;;">启发语言</th>
  14. <td style=";;"><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>、<a href="/wiki/Java" title="Java">Java</a></td>
  15. </tr>
  16. </table>

参考文章:[python学习] 简单爬取维基百科程序语言消息盒
然后再在这个infobox内容中通过正则表达式进行分析爬取。下面讲述爬取属性-属性值:
爬取格式如下:
        <table>
                <tr>
                      <th>属性</th>
                      <td>属性值</td>
                </tr>
        </table>
其中th表示加粗处理,td和th中可能存在属性如title、id、type等值;同时<td></td>之间的内容可能存在<a href=..></a>或<span></span>或<br />等值,都需要处理。下面先讲解正则表达式获取td值的例子:
参考:http://bbs.csdn.net/topics/390353859?page=1

  1. <table>
  2. <tr>
  3. <td>序列号</td><td>DEIN3-39CD3-2093J3</td>
  4. <td>日期</td><td>2013年1月22日</td>
  5. <td>售价</td><td>392.70 元</td>
  6. <td>说明</td><td>仅限5用户使用</td>
  7. </tr>
  8. </table>

Python代码如下:

  1. # coding=utf-8
  2. import re
  3. s = '''''<table>
  4. <tr>
  5. <td>序列号</td><td>DEIN3-39CD3-2093J3</td>
  6. <td>日期</td><td>2013年1月22日</td>
  7. <td>售价</td><td>392.70 元</td>
  8. <td>说明</td><td>仅限5用户使用</td>
  9. </tr>
  10. </table>
  11. '''
  12. res = r'<td>(.*?)</td><td>(.*?)</td>'
  13. m = re.findall(res,s,re.S|re.M)
  14. for line in m:
  15. print unicode(line[0],'utf-8'),unicode(line[1],'utf-8') #unicode防止乱码
  16. #输出结果如下:
  17. #序列号 DEIN3-39CD3-2093J3
  18. #日期 2013年1月22日
  19. #售价 392.70 元
  20. #说明 仅限5用户使用

如果<td id="">包含该属性则正则表达式为r'<td id=.*?>(.*?)</td>';同样如果不一定是id属性开头,则可以使用正则表达式r'<td .*?>(.*?)</td>'。

------------------------------------------------------------------------------------------------------------------------------

7.过滤<span></span>等标签

在获取值过程中,通常会存在<span>、<br>、<a href>等标签,下面举个例子过滤。
<td><span class="nickname">(字) 翔宇</span></td>过滤标签<span>核心代码:
    elif "span" in nn: #处理标签<span>
            res_value = r'<span .*?>(.*?)</span>'
            m_value = re.findall(res_value,nn,re.S|re.M) 
            for value in m_value:
                print unicode(value,'utf-8'),

代码如下,注意print中逗号连接字符串:

  1. # coding=utf-8
  2. import re
  3. language = '''''
  4. <table class="infobox bordered vcard" style="width: 21em; font-size: 89%; text-align: left;" cellpadding="3">
  5. <caption style="text-align: center; font-size: larger;" class="fn"><b>周恩来</b></caption>
  6. <tr>
  7. <th>性別:</th>
  8. <td>男</td>d
  9. </tr>
  10. <tr>
  11. <th>異名:</th>
  12. <td><span class="nickname">(字) 翔宇</span></td>
  13. </tr>
  14. <tr>
  15. <th>政黨:</th>
  16. <td><span class="org"><a href="../articles/%E4%B8%AD9A.html" title="中国">中国</a></span></td>
  17. </tr>
  18. <tr>
  19. <th>籍貫:</th>
  20. <td><a href="../articles/%E6%B5%9981.html" title="浙江省">浙江省</a><a href="../articles/%E7%BB%8D82.html" title="绍兴市">绍兴市</a></td>
  21. </tr>
  22. </table>
  23. '''
  24. #获取table中tr值
  25. res_tr = r'<tr>(.*?)</tr>'
  26. m_tr =  re.findall(res_tr,language,re.S|re.M)
  27. for line in m_tr:
  28. #获取表格第一列th 属性
  29. res_th = r'<th>(.*?)</th>'
  30. m_th = re.findall(res_th,line,re.S|re.M)
  31. for mm in m_th:
  32. if "href" in mm: #如果获取加粗的th中含超链接则处理
  33. restr = r'<a href=.*?>(.*?)</a>'
  34. h = re.findall(restr,mm,re.S|re.M)
  35. print unicode(h[0],'utf-8'), #逗号连接属性值 防止换行
  36. else:
  37. print unicode(mm,'utf-8'),   #unicode防止乱
  38. #获取表格第二列td 属性值
  39. res_td = r'<td>(.*?)</td>'  #r'<td .*?>(.*?)</td>'
  40. m_td = re.findall(res_td,line,re.S|re.M)
  41. for nn in m_td:
  42. if "href" in nn: #处理超链接<a href=../rel=..></a>
  43. res_value = r'<a .*?>(.*?)</a>'
  44. m_value = re.findall(res_value,nn,re.S|re.M)
  45. for value in m_value:
  46. print unicode(value,'utf-8'),
  47. elif "span" in nn: #处理标签<span>
  48. res_value = r'<span .*?>(.*?)</span>'
  49. m_value = re.findall(res_value,nn,re.S|re.M) #<td><span class="nickname">(字) 翔宇</span></td>
  50. for value in m_value:
  51. print unicode(value,'utf-8'),
  52. else:
  53. print unicode(nn,'utf-8'),
  54. print ' ' #换行

输出如下所示:

  1. >>>
  2. 性別: 男
  3. 異名: (字) 翔宇
  4. 政黨: 中国测试
  5. 籍貫: 浙江省 绍兴市
  6. >>>

------------------------------------------------------------------------------------------------------------------------------

8.获取<script></script>等标签内容

比如在获取游讯网图库中,图集对应的原图它是存储在script中,其中获取原图-original即可,缩略图-thumb,大图-big,通过正则表达式下载URL:
        res_original = r'"original":"(.*?)"' #原图
        m_original = re.findall(res_original,script)
代码如下:

  1. # coding=utf-8
  2. import re
  3. import os
  4. content = '''''
  5. <script>var images = [
  6. { "big":"http://i-2.yxdown.com/2015/3/18/KDkwMHgp/6381ccc0-ed65-4422-8671-b3158d6ad23e.jpg",
  7. "thumb":"http://i-2.yxdown.com/2015/3/18/KHgxMjAp/6381ccc0-ed65-4422-8671-b3158d6ad23e.jpg",
  8. "original":"http://i-2.yxdown.com/2015/3/18/6381ccc0-ed65-4422-8671-b3158d6ad23e.jpg",
  9. "title":"","descript":"","id":75109},
  10. { "big":"http://i-2.yxdown.com/2015/3/18/KDkwMHgp/fec26de9-8727-424a-b272-f2827669a320.jpg",
  11. "thumb":"http://i-2.yxdown.com/2015/3/18/KHgxMjAp/fec26de9-8727-424a-b272-f2827669a320.jpg",
  12. "original":"http://i-2.yxdown.com/2015/3/18/fec26de9-8727-424a-b272-f2827669a320.jpg",
  13. "title":"","descript":"","id":75110},
  14. </script>
  15. '''
  16. html_script = r'<script>(.*?)</script>'
  17. m_script = re.findall(html_script,content,re.S|re.M)
  18. for script in m_script:
  19. res_original = r'"original":"(.*?)"' #原图
  20. m_original = re.findall(res_original,script)
  21. for pic_url in m_original:
  22. print pic_url
  23. filename = os.path.basename(pic_url) #去掉目录路径,返回文件名
  24. urllib.urlretrieve(pic_url, 'E:\\'+filename) #下载图片

运行结果如下图所示,同时下载图片至E盘。
参考文章: [python学习] 简单爬取图片网站图库中图片

------------------------------------------------------------------------------------------------------------------------------

9.通过replace过滤<br />标签

在获取值过程中,通常会存<br />标签,它表示HTML换行的意思。常用的方法可以通过标签'<'和'>'进行过滤,但是这里我想讲述的是一种Python常用的过滤方法,在处理中文乱码或一些特殊字符时,可以使用函数replace过滤掉这些字符。核心代码如下:
    if '<br />' in value:
        value = value.replace('<br />','')   #过滤该标签
        value = value.replace('\n',' ')         #换行空格替代 否则总换行

例如过滤前后的例子:
達洪阿 異名: (字) 厚菴<br /> (諡) 武壯<br /> (勇號) 阿克達春巴圖魯
達洪阿 異名: (字) 厚菴 (諡) 武壯 (勇號) 阿克達春巴圖魯

------------------------------------------------------------------------------------------------------------------------------

10.获取<img ../>中超链接及过滤<img>标签

在获取值属性值过程中,可能在分析table/tr/th/td标签后,仍然存在<img />图片链接,此时在获取文字内容时,你可能需要过滤掉这些<img>标签。这里采用的方法如下:
        value = re.sub('<[^>]+>','', value)
例如:

  1. #encoding:utf-8
  2. import os
  3. import re
  4. value = '''''
  5. <table class="infobox" style="width: 21em; text-align: left;" cellpadding="3">
  6. <tr bgcolor="#CDDBE8">
  7. <th colspan="2">
  8. <center class="role"><b>中華民國政治人士</b><br /></center>
  9. </th>
  10. </tr>
  11. <tr>
  12. <th>性別:</th>
  13. <td>男</td>
  14. </tr>
  15. <tr>
  16. <th>政黨:</th>
  17. <td><span class="org">
  18. <img alt="中國國民黨" src="../../../../images/Kuomintang.svg.png" width="19" height="19" border="0" />
  19. <a href="../../../../articles/%8B%E6%B0%91%E9%BB%A8.html" title="中國國民黨">中國國民黨</a></span></td>
  20. </tr>
  21. </table>
  22. '''
  23. value = re.sub('<[^>]+>','', value) #过滤HTML标签
  24. print value

输出如下:

  1. >>>
  2. 中華民國政治人士
  3. 性別:
  4. 政黨:
  5. 中國國民黨
  6. >>>

虽然仅仅包括汉字,但是中间会存在换行,需要过滤<br />即可:

  1. if '<br />' in value:
  2. value = value.replace('<br />','')
  3. value = value.replace('\n',' ')
  4. value = re.sub('<[^>]+>','', value) #过滤HTML标签
  5. print value
  6. #输出仅仅一行如下:
  7. #中華民國政治人士    性別: 男   政黨:   中國國民黨

下面讲述第二部分,通过正则表达式获取<img>中的src超链接,代码如下:

  1. test = '''''<img alt="中國國民黨" src="../images/Kuomintang.png" width="19" height="19" border="0" />'''
  2. print re.findall('src="(.*?)"',test)

输出如下所示:

  1. >>>
  2. ['../images/Kuomintang.png']
  3. >>>

findall函数返回的总是正则表达式在字符串中所有匹配结果的列表,即findall中返回列表中每个元素包含的信息。

最后希望文章对你有所帮助,后面如果遇到新的相关知识,我也会即使的更新添加的。
(By:Eastmount 2016-04-07 清晨6点  http://blog.csdn.net/eastmount/)

[python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】的更多相关文章

  1. 常用正则表达式爬取网页信息及HTML分析总结

    Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取<tr></tr>标签之间内容 2.获取<a href..></a>超链接之间内容 3 ...

  2. python学习之——爬取网页信息

    爬取网页信息 说明:正则表达式有待学习,之后完善此功能 #encoding=utf-8 import urllib import re import os #获取网络数据到指定文件 def getHt ...

  3. Python爬取网页信息

    Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初 ...

  4. python requests库爬取网页小实例:爬取网页图片

    爬取网页图片: #网络图片爬取 import requests import os root="C://Users//Lenovo//Desktop//" #以原文件名作为保存的文 ...

  5. python 爬虫(爬取网页的img并下载)

    from urllib.request import urlopen # 引用第三方库 import requests #引用requests/用于访问网站(没安装需要安装) from pyquery ...

  6. python 嵌套爬取网页信息

    当需要的信息要经过两个链接才能打开的时候,就需要用到嵌套爬取. 比如要爬取起点中文网排行榜的小说简介,找到榜单网址:https://www.qidian.com/all?orderId=&st ...

  7. python+selenium+PhantomJS爬取网页动态加载内容

    一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...

  8. 用shell脚本爬取网页信息

    有个小需求,就是爬取一个小网站一些网页里的某些信息,url是带序号的类似的,不需要写真正的spider,网页内容也是差不多的 需要取出网页中<h1></h1>中间的字符串,而且 ...

  9. Python简单程序爬取天气信息,定时发邮件给朋友【高薪必学】

    前段时间看到了这个博客.https://blog.csdn.net/weixin_45081575/article/details/102886718.他用了request模块,这不巧了么,正好我刚用 ...

随机推荐

  1. npm 安装远程包(github的)

    npm install git+ssh://git@github.com:xxx/xxx.git#master --save-dev npm install git+ssh://git@github. ...

  2. mysql分区交换exchange partition

    在表和分区间交换数据 mysql5.6开始支持alter table..exchange partition语法,该语句允许分区或子分区中的数据与另一个非分区的表中的数据进行交换,如果非分区表中的数据 ...

  3. javaBean

    JavaBean是一个满足特定规范的java类, 1.该类必须是公共类 2.必须具有一个默认无参的public构造函数,从而可以使用new关键字直接对其进行实例化 3.实现可序列化接口 4.属性必须是 ...

  4. css的权重

    标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100.例如下面的代码: p{color:red;} /*权值为1*/ p span{color:green;} /*权值为1+1=2*/ ...

  5. Thinkphp框架回顾(三)之怎么实现平常的sql操作数据库

    1.首先简单介绍一下我们的数据库,thinkphp数据库下有一个tp_user表,然后有四个字段....id,username,password,sex 我们今天的任务就是在Thinkphp下将数据调 ...

  6. CryptoJS_Base64

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. Is the Information Reliable? -POJ2983差分约束

    Time Limit: 3000MS Memory Limit: 131072K Description The galaxy war between the Empire Draco and the ...

  8. 【前端】stopPropagation, preventDefault, return false的区别

    e.stopPropagation()阻止事件冒泡或者捕获 因为事件可以在各层级的节点中传递, 不管是冒泡还是捕获, 有时我们希望事件在特定节点执行完之后不再传递, 可以使用事件对象的 stopPro ...

  9. Java 动态生成复杂 Word

    Java 动态生成复杂 Word 阅读目录 1. 制作 Word 模版,将你需要动态生成的字段用${}替换.2. 将 Word文档保存为 xml .3. 引入项目. 项目中需要用 java 程序生成d ...

  10. ie不兼容的几个js问题及解决办法

    1.table问题 在动态新增tr或者td时,createElement()一般用appendChild();都不生效,解决办法是用新增tbody,如 var table=document.creat ...