用select('ul 的 css 路径')find_all()
css路径直接用浏览器开发视图,从ul复制就好,当然也可以把前面多余的部分删掉
关键在于查找时间的正则表达式,也就是程序中reg变量的字符串,你可以去了解一下
import res = """<a class="time" target="_blank" href="">昨天 00:26</a>
<a class="time" target="_blank" href="">今天 00:26</a>"""
def getTime(html):
reg = r'<a class="time">()</a>'
timere = recompile(reg)
timelist = refindall(timere,html)
for t in timelist:
print t
getTime(s)
使用时先安装 lxml 包
开始使用 #
和beautifulsoup类似,首先我们需要得到一个文档树
把文本转换成一个文档树对象
from lxml import etreeif __name__ == '__main__':doc='''
把文件转换成一个文档树对象
fromlxmlimportetree# 读取外部文件 indexhtmlhtml = etreeparse('/indexhtml')result = etreetostring(html, pretty_print=True)#pretty_print=True 会格式化输出print(result)
均会打印出文档内容
xpath 的思想是通过 路径表达 去寻找节点。节点包括元素,属性,和内容
元素举例
html --->div --->
这里我们可以看到,这里的元素和html中的标签一个意思。单独的元素是无法表达一个路径的,所以单独的元素不能独立使用
路径表达式 #
/ 根节点,节点分隔符,// 任意位置 当前节点 父级节点@ 属性
通配符 #
任意元素@ 任意属性node() 任意子节点(元素,属性,内容)
谓语 #
使用中括号来限定元素,称为谓语
//a[n] n为大于零的整数,代表子元素排在第n个位置的 元素//a[last()] last() 代表子元素排在最后个位置的 元素//a[last()-] 和上面同理,代表倒数第二个//a[position()<3] 位置序号小于3,也就是前两个,这里我们可以看出xpath中的序列是从1开始//a[@href] 拥有href的 元素//a[@href='内置很多函数。更多函数查看 >
首先你这个代码在我这里运行是ok的。
Expires: Tue, 27 Jan 2015 03:56:41 GMT
Date: Tue, 27 Jan 2015 03:55:21 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
X-Via: 11 czdx88:8105 (Cdn Cache Server V20), 11 dagang20:0 (Cdn Cache Server V20)
Connection: close
这个应该是请求错误,有多个可能:
1。你没有连接到网络上,无法访问这个地址
2。你使用了代理
3 你一段时间内访问的太频繁,被对方的服务器拉入了黑名单。
你可以按照自己的情况排查一下。
如果解决了您的问题请采纳!
如果未解决请继续追问!
以上就是关于python3 用BeautifulSoup 爬取指定ul下的a标签全部的内容,包括:python3 用BeautifulSoup 爬取指定ul下的a标签、python用re.findall获取网页全部符合要求的元素、python使用xpath(超详细)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)