三大库:requests,lxml,beautifulSoup.

Request库作用:请求网站获取网页数据。

get()的基本使用方法

#导入库

import requests

#向网站发送请求,获取数据。

res= requests.get(‘http://bj.xiaozhu.com/’)

#打印返回值,<response [200]>成功,<response [404]>,<response [400]>失败

print(res)

#打印返回文本

print(res.test)

加入请求头伪装成浏览器

import request

#User-Agent

headers={Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 QIHU 360SE}

#将heads导入

res=requests.get('https://www.baidu.com/?tn=92495750_hao_pg',headers=headers)

print(res.test)

post()的基本使用:用于提交表单来爬取需要登录才能获得数据的网页。

增加健壮性和效率

Requests库的错误和异常分四种:自己分为两种①未发出Reques②未收到Html

当发现这些错误或异常进行代码修改重新再来,爬虫重新再来,有些数据又爬一次。效率和质量低。

import request

#User-Agent

headers={Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 QIHU 360SE}

#将heads导入

res=requests.get('https://www.baidu.com/?tn=92495750_hao_pg',headers=headers)

try:

  print(res.test)

except ConnectionError:

  print('拒绝连接')

beautifulSoup()库的作用:①解析requests库请求的网页,把网页源代码解析成soup文档。②初步提取

①解析requests库请求的网页,把网页源代码解析成soup文档,得到标准缩进格式的结构输出,为进步处理准备。

#导入库

import requests

from bs4 import BeautifulSoup

#向网站发送请求,获取数据。

res= requests.get(‘http://bj.xiaozhu.com/’)

#利用Beauiful库解析为soup文档。

soup=BeautifulSoup(res.test,'html.parser')

print(soup.prettify())

②初步提取

find_all和find()的区别:查询一个或查询所有。使用方法一样,没有具体事例可能用的不多。

根据标签名提取内容

soup.find_all('div',"item")

soup.find_all('div',class='item')

soup.find_all('div',attrs={"class":"item"})

selector():根据路径查询数据

soup.selector( div > div > div.lay.first > div.list_li.\30 > a > img)

div是标签名,list_li.\30是属性class的值

多分支标签中不能使用child要改为type

li:nth-child(1)需改为li:nth-of-type(1)

③get_text()方法:提取标签内容去掉头尾,<i>5456</i>      =>    5456

import requests

from bs4 import BeautifulSoup

#向网站发送请求,获取数据。

res= requests.get(‘http://bj.xiaozhu.com/’)

#利用Beauiful库解析为soup文档。

soup=BeautifulSoup(res.test,'html.parser')

#利用css定位元素

prices=soup.selector( div > div > div.lay.first > div.list_li.\30 > a > img)

#提取标签内容去掉头尾,<i>5456</i>=>5456

for price in prices:

  print (price.get_text())

lxml库

python爬虫之路——初识爬虫三大库,requests,lxml,beautiful.的更多相关文章

  1. python爬虫之路——初识爬虫原理

    爬虫主要做两件事 ①模拟计算机对服务器发起Request请求 ②接收服务器端的Response内容并解析,提取所需的信息 互联网页面错综复杂,一次请求不能获取全部信息.就需要设计爬虫的流程. 本书主要 ...

  2. 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用

    [网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院  欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...

  3. python爬虫之路——初识lxml库和xpath语法

    lxml库:是xml解析库,也支持html文档解析功能,实用功能:自动修正补全html代码. 使用流程:①导入lxml中的etree库,②利用etree.HTML(文件名)或etree.parse(本 ...

  4. python爬虫之路——初识函数与控制语句

    介绍python函数的定义与使用方法,介绍Python的常用控制语句:判断和循环 函数: 格式 def   函数名(参数1,参数2): return ‘结果’ 判断语句:就是多选一 二选一: if c ...

  5. python爬虫之路——初识数据库存储

    非关系型数据库:MongoDB.关系型数据库:MySQL 关系型和非关系型的区别: 安装: 使用: 应用场景: mongoDB是一种非关系型数据库,分为四大类:键值存储数据库,列存储数据库,文档型数据 ...

  6. python爬虫之路——初识基本页面构造原理

    通过chrome浏览器的使用简单介绍网页构成 360浏览器使用右键审查元素,Chrome浏览器使用右键检查,都可查看网页代码. 网页代码有两部分:HTML文件和CSS样式.其中有<script& ...

  7. python爬虫系列之初识爬虫

    前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的 ...

  8. Python学习之路——初识Python

    一.第一个程序Hello World: 1.打印输出Hello World: Python2打印方法: >>> print "hello world"hello ...

  9. python学习之路 初识xml

    import requests from xml.etree import ElementTree as ET r = requests.get('http://www.webxml.com.cn// ...

随机推荐

  1. CSP 的有用资料

    具体请参考: http://software-security.sans.org/downloads/appsec-2014-files/building-a-content-security-pol ...

  2. UVaLive 4727 Jump (递推)

    题意:约瑟夫环,求最后三个数. 析:f[i] = (f[i-1] + k) % i 这是求最后一个数时候,我们倒着推到第一个数时,只有一个数,所以当只有两个数时,就是另一数, 同理,我们可以求得第三个 ...

  3. SQL Server(二)——语句 转

    表的创建: 1.创建列(字段):列名+类型 2.设置主键列(primary key):能够唯一标识一条数据 3.设置唯一(unique):内容不能重复 4.外键关系:一张表(从表)其中的某列引用自另外 ...

  4. Working Experience - MoveWindow API 失败/无效

    写在前面 当然过程不可能这么顺风顺水,毕竟对 Win32 API 不熟悉,并且国内搜索引擎和博客质量较低(不误导你就算好了),最后还是通过 Google -> StackOverflow 找到答 ...

  5. JAVA基础--IO输入输出(File使用)17

    一. File中的方法 1.  列举方法 /* * 获取指定目录以及子目录下的所有文件和文件夹 */ public class ListFilesDemo { public static void m ...

  6. mock测试方法及实践改进

    此文已由作者翟曜授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. mock测试常见的定义为:在测试过程中,对于某些不易构造或不易获取的对象,通过创建虚拟对象的方式来模拟测试的测 ...

  7. 解码H264文件的一些基础知识

    这段时间一直在进行编写H264文件的解析类,因此对于H264文件的格式有了初步的了解,官方文档也看了个大概.这篇文章主要是总结了一些为解码H264文件而需要的一些前期知识,话不多说,下面是干货,有些是 ...

  8. ue4 delegate event

    官网相关 https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Delegates/index.html wi ...

  9. 云服务器、虚拟主机和VPS的区别

    虚拟主机就是利用网络空间技术,把一台服务器分成许多的"虚拟"的主机,每一台网络空间都具有独立的域名和IP地址,具有完整的Internet服务器功能.网络空间之间完全独立,在外界看来 ...

  10. 微信小程序请求openid错误码40163

    通过wx.login({})方法获取到的code只能使用一次,如果需要在哎服务器端再次请求获取openid来进行校验,需要再次通过wx.login({})方法获取code 否则会报错误代码40163, ...