抓取网页:  urllib.request.urlopen(url).read().decode('utf-8')  ---  (百度是utf-8,谷歌不是utf-8,也不是cp936,ascii也不行,iso-8859-1勉强)

PyQt4.QtGui的QTextEdit控件自动解析HTML文档,为显示纯HTML文件,应使用方法QTextEdit.setPlainText()

例:抓取网页的标题、图片和链接

 import sys, re
 import urllib.request
 from PyQt4 import QtGui

 class MainWindow(QtGui.QWidget):
     def __init__(self):
         super(MainWindow, self).__init__()
         self.setWindowTitle('Crawl')
         self.resize(485, 300)

         self.txt = QtGui.QTextEdit()
 #         self.txt.setF
         self.txt.setReadOnly(True)

         grid = QtGui.QGridLayout()
         grid.addWidget(self.txt)
         self.setLayout(grid)

         url = 'http://www.baidu.com/s?wd=python'
         page = urllib.request.urlopen(url).read().decode('utf-8')
         fp = open('e:/temp.txt', 'wt', encoding='utf-8')
         fp.write(page)
         fp.close

         s = '标题:\n'
         page_title = re.compile('<title>(.+?)</title>')
         s += page_title.findall(page)[0]+'\n'

         s += '图片:\n'
         page_images = re.compile('<img src="(.+?)"')
         for data in page_images.findall(page):
             s += data+'\n'

         s += '链接:\n'
         page_link = re.compile('href="(.+?)"')
         for data in page_link.findall(page):
             s += data+'\n'

         self.txt.setPlainText(s)

 app = QtGui.QApplication(sys.argv)
 mainwindow = MainWindow()
 mainwindow.show()

 app.exec_()

最新文章

  1. python练习程序_员工信息表_基本实例
  2. Linux下快速静态编译Qt以及Qt动态/静态版本共存
  3. hdu 3333 树状数组+离线处理
  4. Spring MVC 项目搭建 -1- 创建项目
  5. Django编写RESTful API(二):请求和响应
  6. [2014-02-19]如何移除响应头中的.net framework 版本信息 以及mvc版本信息?
  7. 面试长谈的String,StringBuffer,StringBuilder三兄弟有啥区别
  8. Docker入门(三)使用Docker Compose
  9. KL散度、JS散度、Wasserstein距离
  10. 【2】学习C++之引用
  11. Mysql的多种安装方法———rpm安装
  12. Tensorflow描述张量的维度:阶,形状以及维数
  13. APP优化(转载)
  14. page-break-after:always不能正常工作
  15. Photoshop 基础四 填充(渐变、油漆桶)
  16. python字典的排序,按key排序和按value排序---sorted()
  17. CSS3实现基本图形
  18. stingray前端架构总体设计及运行过程
  19. ajax回调函数中使用$(this)取不到对象的解决方法
  20. numpy模块学习笔记

热门文章

  1. Silverlight中关于ComboBox的各种使用
  2. sea.js教程
  3. Redis模块开发示例
  4. offsetHeight、scrollHeight、clientHeight、height
  5. Java用户界面技术
  6. Java的StringBuffer和StringBuilder类
  7. Codeforces821B Okabe and Banana Trees 2017-06-28 15:18 25人阅读 评论(0) 收藏
  8. 用Html创建简历
  9. Gitlab 赋予某台机器git clone的权限 Deploy key
  10. scikit-FEM-mesh