BeautifulSoup抓取列表页锚文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeautifulSoup抓取列表页锚文本相关的知识,希望对你有一定的参考价值。
素闻BeautifulSoup提取效率低,艾玛,第一印象果然是很要命的,反正比Re 和 Lxml 是要慢的,不过就无奈Re的正则折腾来折腾去,没写出来,Lxml 的 Xpath 又用得不好。
不过就这三个模版来看,BeautifulSoup的表现还是不错的,够简单,顺便测试了一下时间,抓10个列表页花不了1分钟,当然我是菜鸟,没事不会纠结终结速度。
核心就是这部分,用 Find_all 和 Find 都搞了半天不成功,最后用CSS提取搞定,也怪我太着急。
用Find比较麻烦,一层层的Class找,多次索引效率肯定不能保证
用Urllib2 或者 Pycurl 抓都可以
key_list = open(‘title.txt‘,‘a+‘) for page in xrange(0,101): #要抓的列表数量 url = ‘http://www.xxx.net/wangwen/list_205_%s.html‘ % page soup = bs(gethtml(url,headers),"lxml") for i in soup.select(‘.thread_list a‘): #这句是核心,CSS组合查找,找到.thread_list 下的 a 标签 i = i.text.encode(‘utf-8‘) #提取a标签内的文笔内容,也就是锚文本 <a href="http://aaa.com">我是锚文本</a> 此时代码编译为utf-8 key_list.write(i + ‘\n‘) print i,ctime() #装B的写了ctime看时间,其实没啥米鸟用 time.sleep(3) key_list.close()
import pycurl,StringIO,json,time,re,sys from time import ctime from lxml import etree from bs4 import BeautifulSoup as bs reload(sys) sys.setdefaultencoding(‘utf-8‘) #设定系统默认编码,Windows设置gbk呗,没这句容易出错
以上是关于BeautifulSoup抓取列表页锚文本的主要内容,如果未能解决你的问题,请参考以下文章
Python:使用 BeautifulSoup 库抓取百度天气
使用 beautifulSoup、Python 在 h3 和 div 标签中抓取文本
beautifulsoup 怎样抓取 select 标签里面的 option 的文本