python抓取网页数据的三种方法

简介:


一、正则表达式提取网页内容

解析效率:正则表达式>lxml>beautifulsoup

代码:

',html)

print  num

print  "num[1]: ",num[1]

import  re

import  urllib2

 

urllist  = 'http://example.webscraping.com/places/default/view/United-Kingdom-239'

 

html =  urllib2.urlopen(urllist).read()

num =  re.findall('

(.*?)

 

二、BeautifulSoup方法提取网页内容

代码如下:

from  bs4 import BeautifulSoup

import  urllib2

 

urllist  = 'http://example.webscraping.com/places/default/view/United-Kingdom-239'

 

html =  urllib2.urlopen(urllist).read()

#html格式进行确定和纠正

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

#找出tr标签中id属性为places_area__row的内容,如果把find改成findall函数则会把匹配所#有的内容显示出来,find函数只匹配第一次匹配的内容。

tr =  soup.find('tr',attrs={'id':'places_area__row'})

td =  tr.find('td',attrs={'class':'w2p_fw'})

#取出标签内容

area =  td.text

print  "area: ",area

 

三、lxml

lxml库功能和使用类似BeautifulSoup库,不过lxml解析速度比beautifulsoup快。

代码:

import  lxml.html

import  urllib2

 

urllist  = 'http://example.webscraping.com/places/default/vie

w/United-Kingdom-239'

 

html =  urllib2.urlopen(urllist).read()

tree =  lxml.html.fromstring(html)

td =  tree.cssselect('tr#places_area__row > td.w2p_fw')[0]

area =  td.text_content()

print  area

 


本文转自 老鹰a  51CTO博客,原文链接:http://blog.51cto.com/laoyinga/1939999

相关文章
|
7天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
39 5
|
27天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
27 1
|
28天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
28天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
27天前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
30 0
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
64 0
|
27天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
40 2
|
1月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
38 2
|
25天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
25天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南