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