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

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

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

代码:


import
 re

import
 urllib2

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

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

num =
 re.findall(‘<td class="w2p_fw">(.*?)</td>‘,html)

print
 num

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

二、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

时间: 2024-10-05 02:38:14

python抓取网页数据的三种方法的相关文章

python3 抓取网页资源的 N 种方法

python3 抓取网页资源的 N 种方法 1.最简单  urllib.request response = urllib.request.urlopen() html = response.read() 2.使用 Request  urllib.request   req = urllib.request.Request() response = urllib.request.urlopen(req) the_page = response.read() 3.发送数据    urllib.pa

Python抓取网页数据的终极办法!你值得拥有!

假设你在网上搜索某个项目所需的原始数据,但坏消息是数据存在于网页中,并且没有可用于获取原始数据的API.这时,你可以这样解决-- import pandas as pdtables = pd.read_html("https://apps.sandiego.gov/sdfiredispatch/")print(tables[0]) 就这么简单! Pandas可以在页面上找到所有重要的html表,并将它们作为一个新的DataFrame对象返回. 输入表格0行有列标题,并要求它将基于文本的

Python抓取网页&amp;批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

python抓取网页

一 不需要登录的 import urllib2 content = urllib2.urlopen('http://XXXX').read() 二 使用代理 import urllib2 proxy_support = urllib2.ProxyHandler({'http':'http://XX.XX.XX.XX:XXXX'}) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_o

web scraper 抓取网页数据的几个常见问题

如果你想抓取数据,又懒得写代码了,可以试试 web scraper 抓取数据. 相关文章: 最简单的数据抓取教程,人人都用得上 web scraper 进阶教程,人人都用得上 如果你在使用 web scraper 抓取数据,很有可能碰到如下问题中的一个或者多个,而这些问题可能直接将你计划打乱,甚至让你放弃 web scraper . 下面列出几种你可能会碰到的问题,并说明解决方案. 1.有时候我们想选择某个链接,但是鼠标点击就出触发页面跳转,如何处理? 在我们选择页面元素的时候,勾选 "Enab

java抓取网页数据,登录之后抓取数据。

最近做了一个从网络上抓取数据的一个小程序.主要关于信贷方面,收集的一些黑名单网站,从该网站上抓取到自己系统中. 也找了一些资料,觉得没有一个很好的,全面的例子.因此在这里做个笔记提醒自己. 首先需要一个jsoup的jar包,我用的1.6.0..下载地址为:http://pan.baidu.com/s/1mgqOuHa 1,获取网页内容(核心代码,技术有限没封装). 2,登录之后抓取网页数据(如何在请求中携带cookie). 3,获取网站的ajax请求方法(返回json). 以上这三点我就用一个类

scrapy递归抓取网页数据

scrapy spider的parse方法可以返回两种值:BaseItem,或者Request.通过Request可以实现递归抓取. 如果要抓取的数据在当前页,可以直接解析返回item(代码中带**注释的行直接改为yield item): 如果要抓取的数据在当前页指向的页面,则返回Request并指定parse_item作为callback: 如果要抓取的数据当前页有一部分,指向的页面有一部分(比如博客或论坛,当前页有标题.摘要和url,详情页面有完整内容)这种情况需要用Request的meta

【.NET】使用HtmlAgilityPack抓取网页数据

原文:[.NET]使用HtmlAgilityPack抓取网页数据 刚刚学习了XPath路径表达式,主要是对XML文档中的节点进行搜索,通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问,html也是也是一种类似于xml的标记语言,但是语法没有那么严谨,在codeplex里有一个开源项目HtmlAgilityPack,提供了用XPath解析HTML文件,下面掩饰如何使用该类库的使用 首先说下XPath路径表达式 XPath路径表达式 用来选取XML文档中的节点或节点集的 1.术语:

Asp.net 使用正则和网络编程抓取网页数据(有用)

Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </summary> /// <param name="strUrl">採集地址</param> /// <param name="Begin">開始字符</param> /// <param name="End">结束字符</param&g