ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫解析基础

2019-07-21 20:52:02  阅读:148  来源: 互联网

标签:name title 基础 爬虫 soup HTML requests 解析 节点


requests库的基本用法

     
request库的7个主要方法

 requests.request()  构造一个请求,支撑以下各方法的基础方法
 #获取HTML网页的主要方法,对应于HTTP的GET
 requests.get(url,params,data,headers,proxies,cookies,auth,verify)    #  params,data,headers,proxies,cookies为字典类型,auth为元祖类型,verify为布尔类型参数    
 requests.post()             向HTML网页提交POST请求的方法,对应于HTTP的POST
 requests.head()            获取HTML网页头信息的方法,对应于HTTP的HEAD
 requests.put()         向HTML网页提交PUT请求的方法,对应于HTTP的PUT
 requests.patch()           向HTML网页提交局部修改请求,对应于HTTP的PATCH
 requests.delete()  向HTML页面提交删除请求,对应于HTTP的DELETE

 几种属性

  .states_code      返回状态码
  .text                  返回 html 属性
  .headers           返回头部信息
  .url                      返回请求的链接

beautifulsoup库的基本用法

支持的解析器

支持python标准库、lxml HTML、lxml XML、html5lib四种解析器
用法:BeautifulSoup(markup,"解析器")#注意markup代表源代码,如果自己写的文本的话,注意价格str
比如:BeautifulSoup(markup,"lxml")

提取的方法

节点选择器

格式:解析后文本.节点
例如:

from bs4 import BeautifulSoup
soup=BeautifulSoup(html,'lxml')
print(soup.title)  #输出的是 bs4.element.Tag
>>>>输出html文本中的title节点及其标签里的内容,

获取节点属性、提取信息:
例如:

soup.title.name  #获得title节点的名字,即输出的为title,一般这么用  soup.title.parent.name
soup.title.['name']  #获取title节点name属性的值
soup.title.string  #获得title节点的内容
soup.title.contents  #获取title节点的直接子节点列表(既有子节点,又有子节点包含的文本)(列表类型)
soup.title.children  #获取直接子节点(返回的是生成器类型)
soup.title.descendants  #获取所有子孙节点
soup.title.parent /parents   #获取父节点/祖先节点
soup.title.next_sibling/previous_sibling   #获取下一个/前一个兄弟节点(同级节点)

方法选择器

find_all(name, attrs, recursive, text, ** kwargs) ,name表示节点名称、attrs为节点属性、text为节点内的文本 #匹配所有符合条件的节点
find()    #匹配第一个符合条件的节点
例如:soup.find_all('div',id='content',class_='showtxt') #查找所有的属性id为content,class为showtxt的div节点

CSS选择器

 select('节点')方法选择节点
 例如:
           title=soup.select('title ')#选择title节点
           point_attrs=title['id'] #获得title节点的id属性的值
           point_text=title.get_text() #获得title节点的文本

基本的爬取过程

先使用浏览器的检查功能,分析一下网页源代码,然后就是获取网页源代码,解析HTML信息。一般使用的请求库哟有urlib、requests。解析库有:beaytifulsoup、xpath、pyquery。存储:redies、mongodb、mysql。

文本保存

    save_path = 'D://storyspider' #定义保存路径
    if not os.path.exists(save_path):#如果没有这个路径就创建
        os.mkdir(save_path)
    with open(save_path + '/' + each_name + '.txt', 'a', encoding='utf-8')as f:  #以追加的方式 写入
        f.write('本文网址:' + each_url)

标签:name,title,基础,爬虫,soup,HTML,requests,解析,节点
来源: https://www.cnblogs.com/jacker2019/p/11220946.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有