课时11

作者: ooocoo | 来源:发表于2016-05-12 00:05 被阅读0次
  • select 函数返回的数据是列表,即使它只有一个。
1.jpg

那么当我们只采集单页面 不想 用 for 赋值 zip() 的时候我们就需要对该列表里面的函数进行选择。

title = soup.select('div.pho_info > h4')[0].text 

这里面是选择第一项 然后对他取文本的意思。

而这里面为什么选择 div.pho_info > h4 是因为 这是里标题最近的 单独 纯在好找的 一个层级。

1.jpg

在具体页面里面,一般向获取的元素都是在自己单独的一个div 或者样式里面,而在这里面我们获取自己想要的元素就是通过 找到要获取元素所在div ,然后再找他的样式结构。

address = soup.select('div.pho_info > p')[0].get('title') 
1.jpg

这里面的 返回值, 用什么来接 就返回到哪里。

1.jpg

要爬取具体内容页面时 首先就要得到他的具体链接地址,而具体链接地址是放在列表页面的,那么我们就需要一个函数来爬取列表页面,然后把获取到的内容页面链接放入到一个空列表里面。

  • 从列表页面获取到内容的链接, 那么我们就要找这些内容链接有什么相同的 属性, 这里面找到的是
    resule_img_a
1.jpg

这个标签是存在于a 标签里面的,
所以写为,a.resule_img_a

soup.select('a.resule_img_a'):

自己在学了这之后有一点感觉不一样但又说不出来这和之前的 筛选又有什么区别, 于是努力回想 如果按照之前的筛选方法 一般都是在要选的链接上, 右键复制 selector 然后 在看要获取的属性。

1.jpg
  • 直接一步添加自己要爬的内容页面
1.jpg

我的代码

from bs4 import BeautifulSoupimport requestsurl = 'http://bj.xiaozhu.com/fangzi/1508951935.html'wb_data = requests.get(url)soup = BeautifulSoup(wb_data.text,'lxml')title = soup.select('div.pho_info > h4')[0].textaddress = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p')[0].get('title')price = soup.select('#pricePart > div.day_l > span')[0].textpic = soup.select('#imgMouseCusor')[0].get('src')host_name = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a')[0].get('title')# host_gender = soup.select('div.member_pic > div')[0].get('class')[0]host_gender = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > span')[0].get('class')[0]def get_gender(gender):    if gender == 'member_girl_ico':        return '女'    if gender == 'member_boy_ico':        return '男'get_gender('member_girl_ico')data = {    'title':title,    'address':address,    'price':price,    'pic':pic,    'host_name':host_name,    'host_gender':get_gender(host_gender)}print(data)page_link = []def get_page_link(page_number):    for each_number in range(1,page_number):        full_url = 'http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(each_number)        wb_data = requests.get(full_url)        soup = BeautifulSoup(wb_data.text,'lxml')        for link in soup.select('a.resule_img_a'):            page_link.append(link)

相关文章

  • 课时11

    select 函数返回的数据是列表,即使它只有一个。 那么当我们只采集单页面 不想 用 for 赋值 zip()...

  • 2017-05-24

    经济法,第四课时结束 会计,第11课时

  • DDoS攻防原理及实战

    课程概览 课时列表 评价 笔记 课时1:DDoS介绍和发展史11:55 课时2:DDoS攻防之Syn Flood1...

  • 分布式数据库技术与实现

    课程概览 课时列表 评价 笔记( 11 ) 课时1:传统数据库回顾03:25 课时2:分布式数据库概述04:42 ...

  • 奇卡课时

    截止2月4日止,已上到64课时,还有63课时。 3月11日,上课两节,余61节

  • 2019-05-12

    2019-5-11 学习web前端的第四课时。

  • 江老师互动美术培训中心暑期班招生开始啦!

    上课时间:7月1日——7月31日,每周三个半天,(每个半天2.5课时8:30——11:00,一个月每批40课时)。...

  • 11-3周复盘|未来可期

    11-3周复盘: 【1】读书10番茄钟 × 完成8个番茄钟 【2】理财课程学习4课时 × 完成3课时 【3】瑜伽+...

  • 尊重,相互的

    【明日语文学习任务】 1.网课时间 上午:10:40—11:20 写语文学习与巩固 2.网课时间 下午:15:50...

  • 【课程笔记】一个概念“秒杀”所有学习方法

    基本信息: 课程时间:2017-02-03 听课时间:2017-02-11 笔记时间:2017-02-11 分享老...

网友评论

      本文标题:课时11

      本文链接:https://www.haomeiwen.com/subject/eqburttx.html