三种网页抓取方法
来源:互联网 发布:飞利浦shp8000 知乎 编辑:程序博客网 时间:2024/05/16 16:58
#-*- coding:UTF-8 -*-#1正则表达式import reimport urllib2url = 'http://example.webscraping.com/places/view/United-Kingdom-239'html = urllib2.urlopen(url).read()print re.findall('<td class="w2p_fw">(.*?)</td>', html)#正则表达式为我们提供了抓取数据的快捷方式,但是,该方法过于脆弱,容易在网页更新后出现问题。#2BeautifulSoupfrom bs4 import BeautifulSoupimport urllib2url = 'http://example.webscraping.com/places/view/United-Kingdom-239'html = urllib2.urlopen(url).read()soup = BeautifulSoup(html)print soup.prettify()tr = soup.find(attrs={'id':'places_area_row'})td = tr.find(attrs={'class':'w2p_fw'})area = td.textprint area#3Lxml css选择器import lxml.htmlimport urllib2url = 'http://example.webscraping.com/places/view/United-Kingdom-239'html = urllib2.urlopen(url).read()tree = lxml.html.fromstring(html)td = tree.cssselect('tr#places_area__row > td.w2p_fw')[0]area = td.text_content()print area#抓取结果FIELDS = ('area', 'population', 'iso', 'country', 'capital', 'continent', 'tld', 'currency_code', 'currency_name', 'phone', 'postal_code_format', 'postal_code_regex', 'languages')import redef re_scraper(html): results = {} for field in FIELDS: results[field] = re.search('<tr id="places_%s_row">.*?<td class="w2p_fw">(.*?)</tr>' % field, html).groups()[0] return resultsfrom bs4 import BeautifulSoupdef bs_scraper(html): soup = BeautifulSoup(html, 'html.parser') results = {} for field in FIELDS: results[field] = soup.find('table').find('tr', id='places_%s_row' % field).find('td', class_='w2p_fw').text return resultsimport lxml.htmldef lxml_scraper(html): tree = lxml.html.fromstring(html) results = {} for field in FIELDS: results[field] = tree.cssselect('table > tr#places_%s_row > td.w2p_fw' % field)[0].text_content() return results
阅读全文
0 0
- 三种网页抓取方法
- python三种网页抓取方法
- 三种网页抓取方法性能对比
- Python 三种网页抓取方法
- 三种asp.net 抓取网页源代码,推荐方法一
- asp.net 抓取网页源码三种实现方法
- Python爬虫之三种网页抓取方法性能比较
- 网页抓取三种方式
- 爬虫入门三(获取各国网址,三种网页抓取方法,下载缓存)
- php抓取网页代码四种方法
- 抓取网页数据的几种方法
- 抓取网页相关方法
- 网页内容抓取 图片的抓取方法
- 【PHP-网页内容抓取】抓取网页内容的两种常用方法
- 爬取网页后的抓取数据_3种抓取网页数据方法
- 网页分页数据的三种抓取方式亲测
- 网页分页数据的三种抓取方式亲测
- HttpClient抓取网页文件方法
- 数字货币开发专题(51%攻击技术和运行方法)
- R13 LAA协议翻译
- B
- poj 2115 拓展欧几里德
- 欢迎使用CSDN-markdown编辑器
- 三种网页抓取方法
- css3 will-change
- 常见对象-基本类型包装类
- 使用Nginx搭建rtmp流媒体服务器笔记
- Microsoft.Office
- link和@import的区别及联系
- springmvc如何设置多个同类型的视图器(springmvc 多个 ViewResolver)
- Spring事务之声明式事务
- codeforces——228A —— Is your horseshoe on the other hoof?