获取a元素title的属性值的⽅法是_四种常见基础爬⾍⽅法介绍,你会⼏种呢?
⼀、Urllib⽅法
Urllib是python内置的HTTP请求库quest#1.定位抓取的urlurl='www.baidu/'#2.向⽬标url发送请求quest.urlopen(url)#3.读取数据ad()# print(data)  #打印出来的数据有A
⼆、requests⽅法
–Requests是⽤python语⾔基于urllib编写的,采⽤的是Apache2 Licensed开源协议的HTTP库–urllib还是⾮常不⽅便的,⽽Requests它会⽐urllib更加⽅便,可以节约我
们⼤量的⼯作。–requests是python实现的最简单易⽤的HTTP库,建议爬⾍使⽤requests库。–默认安装好python之后,是没有安装requests模块的,需要单独通过pip安
import requests#get请求('www.taobao/')#打印字节流数据# t)# t.decode('utf-8'))  #转码)  #打印⽂本数据import chardet#⾃动获取到⽹页编码,
返回字典类型print POST请求实现模拟表单登录import requests#构建上传到⽹页的数据data={    'name':'Jack',    'pass':'123456'}#带登陆数据发送请求r=requests.post('www.iqianyue/mypost/',data=data))  #打印请求数据#将#针对检验头信息的反爬机制headersimport requests#构建headersheaders={    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}r=reque #cookies#跳过登陆,获取资源import requestsf=open('','r')  #打开cookie⽂件#初始化cookies,声明⼀个空字典cookies={}#按照字符;进⾏切割读取,返回列表数据,然后遍历#split():切割函数  strip()去除字符串前#设置代理(⽹站搜索免费代理ip)#解决⽹页封IP的问题import requestsproxies={    #'协议':'ip:端⼝号'    'HTTP':'222.83.160.37:61205'}('www.taobao/',proxies=proxies))#设置超时import
三、BS4- BeautifulSoup4解析
from bs4 import BeautifulSouphtml = """The Dormouse's story
The Dormouse's story
Once upon a time there were three little sisters; and their names wereElsie,Lacie andTillie;and they lived at the bottom of a well.
...
"""# #创建⼀个BS对象soup=BeautifulSoup(html,'html.parser') #html.parser默认解析器print(type(soup))# 结构化输出print(soup.prettify())#1获取标签(只能获取第⼀条对应的标
签)print(soup.p) #获取p标签print(soup.a) #获取a标签print(soup.title) #获取title#2获取标签内容print(soup.title.string)print(soup.a.string)print(soup.body.string) #如果标签中有多个
⼦标签返回Noneprint(soup.head.string) #如果标签中有⼀个⼦标签返回⼦标签⾥的⽂本#3获取属性print(soup.a.attrs) #返回字典print(soup.a['id']) #得到指定属性值#4操作字节点
print(ts) #得到标签下所有⼦节点print(soup.p.children) #得到标签下所有⼦节点的迭代对象#5操作⽗节点print(soup.p.parent) #得到标签p的⽗节点其内部的所有内
容print(soup.p.parents) # 得到标签p的⽗节点的迭代对象#6操作兄弟节点(同级的节点)#next_sibling和previous_sibling分别获取节点的下⼀个和上⼀个兄弟元素
print(_sibling)print(soup.a.previous_sibling)#⼆.搜索⽂档数#1标签名#查询所有a标签res1=soup.find_all('a')print(res1)#获取所有a标签下属性为class="sister"的标签
(#使⽤ class 做参数会导致语法错误,这⾥也要⽤class_)print(soup.find_all('a',class_="sister"))#2正则表达式import re#查询所有包含d字符的标签
res2=soup.find_all(repile('d+'))print(res2)#3列表#查所有的title标签和a标签res3=soup.find_all(['title','a'])print(res3)#4关键词#查询属性id='link1'的标签
res4=soup.find_all(id='link1')print(res4)#5内容匹配res5=soup.find_all(text='Tillie') #⽂本匹配res55=soup.find_all(text=repile('Dormouse'))print(res55)#6嵌套选择
print(soup.find_all('p'))#查看所有p标签下所有的a标签for i in soup.find_all('p'): print(i.find_all('a'))#三.CSS选择器#1根据标签查询对象res6=soup.select('a') #返回列表print(res6) #
得到所有的a标签#2根据ID属性查询标签对象(id⽤#)print(soup.select('#link2'))#3根据class属性查询标签对象(class⽤.)print(soup.select('.sister'))print(soup.select('.sister')
[2].get_text()) #获取⽂本内容#4属性选择(获取a标签⾥=href属性值的标签)print(soup.select('a[href="example/elsie"]'))#5包含选择(获取)print(soup.select('p a#link1'))#6
并列选择print(soup.select('a#link1,a#link2'))#7得到标签内容res7=soup.select('p a.sister')for i in res7:
_text())1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 #练习:爬取51job主页12个职位from bs4 import BeautifulSoupimport requestsurl='www.51job/'headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
四、XPath语法
XPath 是⼀门在 XML ⽂档中查信息的语⾔。XPath 可⽤来在 XML ⽂档中对元素和属性进⾏遍历
from lxml import etreetext='''                    春晚
个⼈简介
selenium获取cookie姓名:岳云鹏
住址:中国河南
代表作:五环之歌
'''#初始化html=etree.HTML(text)# string(html) #字节流# print(result.decode('utf-8'))#查询
所有的p标签p_x=html.xpath('//p')print(p_x)#查询所有p标签的⽂本,⽤text只能拿到该标签下的⽂本,不包括⼦标签for i in p_x: ) #发现没有拿到#优化,⽤string()拿标签内部的所有⽂本for i in p_x: print(i.xpath('string(.)'))# 查询所有name属性的值attr_name=html.xpath('//@name')print(attr_name)#查询出所有包含name属性的标签attr_name1=html.xpath('//*[@name]')print(attr_name1)
你学会了吗 爬⾍源码案例视频教程加:1136192749

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。