web爬虫讲解—urllib库中使用xpath表达式—BeautifulSoup基础

在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块,然后将网页数据通过lxml下的etree转化为treedata的形式

urllib库中使用xpath表达式

etree.HTML()将获取到的html字符串,转换成树形结构,也就是xpath表达式可以获取的格式

#!/usr/bin/env python
# -*- coding:utf8 -*-
import urllib.request
from lxml import etree  #导入html树形结构转换模块

wye = urllib.request.urlopen(‘http://sh.qihoo.com/pc/home‘).read().decode("utf-8",‘ignore‘)
zhuanh = etree.HTML(wye)  #将获取到的html字符串,转换成树形结构,也就是xpath表达式可以获取的格式
print(zhuanh)
hqq = zhuanh.xpath(‘/html/head/title/text()‘) #通过xpath表达式获取标题

#注意,xpath表达式获取到数据,有时候是列表,有时候不是列表所以要做如下处理
if str(type(hqq)) == "<class ‘list‘>":  #判断获取到的是否是列表
    print(hqq)
else:
    xh_hqq = [i for i in hqq]       #如果不是列表,循环数据组合成列表
    print(xh_hqq)

#返回 :[‘【今日爆点】你的专属资讯平台‘]

BeautifulSoup基础

BeautifulSoup是获取thml元素的模块

BeautifulSoup-3.2.1版本

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

原文地址:https://blog.51cto.com/14510224/2435243

时间: 2024-10-12 14:40:13

web爬虫讲解—urllib库中使用xpath表达式—BeautifulSoup基础的相关文章

第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号

第三百三十节,web爬虫讲解2-urllib库爬虫-实战爬取搜狗微信公众号 封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import json import random import re import urllib.error def hq_html(hq_url): """ hq_html()封装的爬虫函数,自动启用了用户代理和ip

Python爬虫的Urllib库有哪些高级用法?

本文和大家分享的主要是python爬虫的Urllib库的高级用法相关内容,一起来看看吧,希望对大家学习python有所帮助. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它 是一段HTML代码,加 JS.CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服.所以最重要的部分是存在于HTML中的,下面我 们就写个例子来扒一个网页下来. imp

第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

第三百三十三节,web爬虫讲解2-Scrapy框架爬虫-Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其

Python爬虫之Urllib库的基本使用

Python爬虫之Urllib库的基本使用 import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() 其实上面的urlopen参数可以传入一个request请求,它其实就是一个Request类的实例,构造时需要传入Url,Data等等的内容.比如上面的两行代码,我们可以这么改写 # -*- coding: utf-8 -*- """ Cre

python3爬虫之Urllib库(二)

在上一篇文章中,我们大概讲了一下urllib库中最重要的两个请求方法:urlopen()  和  Request() 但是仅仅凭借那两个方法无法执行一些更高级的请求,如Cookies处理,代理设置等等. 这是就是Handler大显神威的时候了,简单地说,他是各种处理器,有处理验证登录的,有处理Cookies的,有处理代理设置的. 高级用法 首先说一下urllib.request模块中的BaseHandler类,他是所有类的基类,它提供了最基本的方法,如:default_open()   prot

第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+

第三百三十七节,web爬虫讲解2-PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,利用这个软件,可以获取到网址js加载的任何信息,也就是可以获取浏览器异步加载的信息 下载网址:http://phantomjs.org/download.html  下载对应系统版本 下载后解压PhantomJS文件,将解压文件夹,剪切到python安装文件夹 然后将P

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有

python爬虫之urllib库

请求库 urllib urllib主要分为几个部分 urllib.request 发送请求urllib.error 处理请求过程中出现的异常urllib.parse 处理urlurllib.robotparser 解析robots.txt -->规定了该网站的爬虫权限 urllib.request方法 data = urllib.request.urlopen(url) #返回response对象 data.read() --->取出网页源代码 (bytes类型,可以通过decode()转成u

web爬虫讲解—Scrapy框架爬虫—Scrapy使用

xpath表达式 //x 表示向下查找n层指定标签,如://div 表示查找所有div标签 /x 表示向下查找一层指定的标签 /@x 表示查找指定属性的值,可以连缀如:@id @src [@属性名称="属性值"]表示查找指定属性等于指定值的标签,可以连缀 ,如查找class名称等于指定名称的标签 /text() 获取标签文本类容 [x] 通过索引获取集合里的指定一个元素 1.将xpath表达式过滤出来的结果进行正则匹配,用正则取最终内容最后.re('正则') xpath('//div[