素闻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抓取列表页锚文本的更多相关文章

  1. python实现一个栏目的分页抓取列表页抓取

    python实现一个栏目的分页抓取列表页抓取 #!/usr/bin/env python # coding=utf-8 import requests from bs4 import Beautifu ...

  2. 控制台js常用解决方案,字符串替换和抓取列表页链接

    抓取列表页链接 由于测试站没有jquery所以,我用了原生的js var obj = document.getElementsByClassName('class1'); for(let i = 0; ...

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

    第一次写的小爬虫,python确实功能很强大,二十来行的代码抓取内容并存储为一个txt文本 直接上代码 #coding = 'utf-8' import requests from bs4 impor ...

  4. 使用selenium+BeautifulSoup 抓取京东商城手机信息

    1.准备工作: chromedriver  传送门:国内:http://npm.taobao.org/mirrors/chromedriver/   vpn: selenium BeautifulSo ...

  5. python3用BeautifulSoup抓取id='xiaodeng',且正则包含‘elsie’的标签

    # -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #使用多个指定名字的参数可以同时过滤 ...

  6. python3用BeautifulSoup抓取a标签

    # -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 from bs4 import Be ...

  7. 一、使用 BeautifulSoup抓取网页信息信息

    一.解析网页信息 from bs4 import BeautifulSoup with open('C:/Users/michael/Desktop/Plan-for-combating-master ...

  8. python3用BeautifulSoup抓取div标签

    # -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #标签操作 from bs4 imp ...

  9. 爬虫初体验:Python+Requests+BeautifulSoup抓取广播剧

    可以看到一个DIV下放一个广播剧的信息,包括名称和地址,第一步我们先收集所有广播剧的收听地址: # 用requests的get方法访问novel_list_resp = requests.get(&q ...

随机推荐

  1. Java Volatile transient 关键字

    随笔-204  评论-134  文章-0  trackbacks-0   Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变 ...

  2. C语言之三目运算符

    三目运算符 三目运算符:也叫三元运算符.这个运算符的符号是: ? : 语法: 表达式1 ? 表达式2 : 表达式3; 语义: 先执行表达式1,执行完毕,表达式1的结果如果为真,那么执行表达式2,并且这 ...

  3. 配置supervisor 让laraver的队列实现守护进程

    1,安装: #brew install supervisor 默认会安装在/usr/local/Cellar/supervisor目录 2,在etc下面新建supervisor.conf 文件,复制下 ...

  4. 为知笔记markdown插件安装

    Wiz.Editor.md 是一个基于 Editor.md 构建的为知笔记 Markdown 插件. 主要特性 多种样式主题 支持实时预览 支持代码高亮 支持搜索替换 支持ToC目录 Tex数学公式 ...

  5. Transform.TransformDirection 变换方向

    官方描述: JavaScript ⇒ TransformDirection(direction: Vector3): Vector3; C# ⇒ Vector3 TransformDirection( ...

  6. 原生js

  7. iOS 让UIButton根据文字内容自动计算宽高

    Xcode自带的UIButton控件是没有办法根据文字内容计算自身的宽和高的,下面演示一下问题, 我用代码方式创建一个UIButton,并且设置了一些属性,下面看一下效果图 一切都是这么的美好,跟我们 ...

  8. 深入.NET平台和C#编程

    第一章  深入.NET框架 1.Microsoft.NET框架概述: 1).NET介绍 2)为什么需要.NET框架 通过如下两个问题说明为什么需要.NET框架 01,C#程序可以再不同平台(PDA,P ...

  9. ubuntu 使用apt-get install 安装php5.6--php7

    使用ppa增加源:$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:ondrej/php ...

  10. tomcat的自我理解与使用心得

    当一个动态动态网页编写完成后是不能直接被别人通过浏览器访问的,要想访问此动态网页就必须让浏览器通过一段程序来访问此网页,这段程序就是服务器,他用来接受浏览器的请求,进行处理,将结果返回给浏览器. to ...