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呗,没这句容易出错
时间: 2024-10-13 22:29:13

BeautifulSoup抓取列表页锚文本的相关文章

利用BeautifulSoup抓取新浪网页新闻的内容

第一次写的小爬虫,python确实功能很强大,二十来行的代码抓取内容并存储为一个txt文本 直接上代码 #coding = 'utf-8' import requests from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding("utf-8") #抓取web页面 url = "http://news.sina.com.cn/china/" res = requests.g

使用BeautifulSoup抓取

年前有个坑爹的需求来了,要把某点评网商户数据都给获取下来存储于数据库,好啦其实这个东西是蛮简单的: 首先到点评网把城市数据给拷贝下来,当然你也可以写个脚本把数据抓取下来,不够我没这么干:好了下面是用于抓取数据的脚本,下面我分享下给大家: 城市列表: alashan|57|阿拉善 anshan|58|鞍山 anqing|117|安庆 anhuisuzhou|121|宿州 anyang|164|安阳 aba|255|阿坝 anshun|261|安顺 ali|288|阿里 ankang|297|安康

python3用BeautifulSoup抓取id=&#39;xiaodeng&#39;,且正则包含‘elsie’的标签

# -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #使用多个指定名字的参数可以同时过滤tag的多个属性 from bs4 import BeautifulSoup import urllib.request import re #如果是网址,可以用这个办法来读取网页 #html_doc = "http://tieba.baidu.com/p/2460150866" #req

BeautifulSoup抓取门户网站上的链接

使用BeautifulSoup抓取门户网站上的所有跳转链接 from bs4 import BeautifulSoup import urllib2 request = urllib2.Request('http://www.163.com') response = urllib2.urlopen(request) html_doc = response.read() soup = BeautifulSoup(html_doc , from_encoding = "gb18030")

python爬虫:使用urllib.request和BeautifulSoup抓取新浪新闻标题、链接和主要内容

案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSoup import requests url = 'http://news.sina.com.cn/china/' web_data = requests.get(url) web_data.encoding = 'utf-8' soup = BeautifulSoup(web_data.text,'

python3用BeautifulSoup抓取a标签

# -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 from bs4 import BeautifulSoup import urllib.request html_doc = "http://tieba.baidu.com/p/2460150866" req = urllib.request.Request(html_doc) webpage = urllib.reques

Python结合BeautifulSoup抓取知乎数据

本文主要介绍利用Python登录知乎账号,抓取其中的用户名.用户头像.知乎的问题.问题来源.被赞数目.以及回答者.其中数据是配合Beautiful Soup进行解析的. 首先,要解决的是知乎登录问题.在程序中登录知乎我们直接提供用户名和密码是无法进行登录的,这里我们采用一个比较笨拙的办法直接在发送请求过程中附带上cookies.这个cookies值我们可以通过在火狐浏览器登录知乎时用firebug直接捕获.cookies获取如下图所示: [info] email =youremail passw

python3用BeautifulSoup抓取div标签

# -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #标签操作 from bs4 import BeautifulSoup import urllib.request import re #如果是网址,可以用这个办法来读取网页 #html_doc = "http://tieba.baidu.com/p/2460150866" #req = urllib.request.Req

BeautifulSoup抓取百度贴吧

BeautifulSoup是python一种原生的解析文件的模块,区别于scrapy,scrapy是一种封装好的框架,只需要按结构进行填空,而BeautifulSoup就需要自己造轮子,相对scrapy麻烦一点但也更加灵活一些 以爬取百度贴吧内容示例说明. # -*- coding:utf-8 -*- __author__='fengzhankui' import urllib2 from bs4 import  BeautifulSoup class Item(object):     tit