美文网首页
作业:1.3

作业:1.3

作者: 云清尧 | 来源:发表于2016-07-01 10:18 被阅读0次

<h2>代码</h2>
<pre>
from bs4 import BeautifulSoup
import requests

def get_lorder_gender(class_name):
if class_name == ['member_boy_ico']:
return "男"
else:
return "女"

def get_links(url):
wb_data = requests.get(url)

请求网址

soup = BeautifulSoup(wb_data.text, 'lxml')

解析网页

links = soup.select('#page_list > ul > li > a')

定位链接

for link in links :
    href = link.get("href")
    get_detail_info(href)

通过循环得到具体链接,并将值传递给能得到详细数据的函数

def get_detail_info(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')

titles = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > h4 > em')
adresses = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span.pr5')
prices = soup.select('#pricePart > div.day_l > span')
images = soup.select('#imgMouseCusor')
touxiangs = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > a > img')
names = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a')
genders = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > span')

for title,adress,price,image,touxiang,name,gender in zip(titles,adresses,prices,images,touxiangs,names,genders):
    data = {
        'title':title.get_text(),
        'adress':adress.get_text(),
        'image':image.get('src'),
        'touxiang':touxiang.get("src"),
        'name':name.get_text(),
        'gender': get_lorder_gender(gender.get('class'))

    }
    print(data)

urls = ["http://bj.xiaozhu.com/search-duanzufang-p{}-0/".format(number) for number in range(1,10)]
for single_url in urls:
get_links(single_url)

"""
titles:body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > h4 > em
adreess:body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span.pr5
prices:#pricePart > div.day_l > span
name:#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a
gender:#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > span
touxiang:#floatRightBox > div.js_box.clearfix > div.member_pic > a > img
pics:floatRightBox > div.js_box.clearfix > div.member_pic > a > img
</pre>

<h2>成果</h2>

Paste_Image.png

<h2>总结</h2>
<p>本次作业的目标是爬取“bj.xiaozhu.com(短租网)”300个详情页中“标题、地址、租金、房源图片链接、房东图片链接、房东姓名、性别”。通过分析网页可以发现这些数据需要从2个页面中获取:</p>

第一个是列表页:


Paste_Image.png

在这一页中,操作主要有:
1.用requests请求得到该起始页
2.用BuautifulSoup解析该网页
3.通过观察发现,该网页的图片是同时也是链接,所以主要提取出该页所有图片的链接,并将该链接再次发送给requests和BeautifulSoup。
4.需要翻页,也就意味着需要知道每个列表页的网址。这个网址有特定的规律,通过列表表达式循环得到:

<pre>urls = ["http://bj.xiaozhu.com/search-duanzufang-p{}-0/".format(number) for number in range(1,10)]
for single_url in urls:
get_links(single_url)
</pre>

第二个是详情页:
本页的操作主要有
1.请求网址并解析
2.观察所要爬取内容的标签,并将其记录下来。
3.利用select方法找出这些数据,然后通过get得到具体的信息。
4.利用循环构建字典,将其打印出来。

<h2>反思:</h2>
1.在初学编程的阶段,在编程前首先要思考两个问题:怎么写和些什么?把目标细化成有次序的具体步骤,然后思考一步步该如何具体实现。
2.在编写的过程中,可以明显的感觉到python基础还不是很牢固。尤其是在循环、创建函数上,还需要重温基础。
3.还遇到这个问题,但是不知道问题出在哪里?全部删了重写,问题解决了!

Paste_Image.png

相关文章

  • 作业:1.3

    代码 from bs4 import BeautifulSoupimport requests def get...

  • 1.3作业

    作业:1、从众心理是怎么对我们产生负面影响的?2、追求完美是怎么对孩子产生负面影响的? 我觉得我就是受到了严重的从...

  • 用书侠作业1.3

    12组简·一 用书侠作业1.3《最重要的事只有一件》“只做一件事,就像用邮票黏住信封,不达目的不放松。” 1.我做...

  • C艹之路 V1.3 谭书代码誊抄列表目录

    根据谭浩强的书籍,手敲的全部代码1.3a--1.3b--1.3c--1.3de--1.3fg--

  • 1.3日深研、成作业

    1.3三、每天练习我需要你。 第一条:对儿子说,我需要你早打电话,我需要在九点半做冥想。 第二条:对老公说,我需要...

  • 《陪孩子做作业》1-1-3

    1.3没有标准的作业只会越写越差 ✅根据教育部的规定: 小学一二年级不留书面作业.(口头语言作业) 高年级留一小时...

  • 1.3

    7月28日下午, “江小白酒业集中产业园”、“江小白高粱产业园”项目启动仪式在重庆江津区举行。江小白酒业与重庆市江...

  • 1.3

    不知从什么时候开始,江小白的名字就以迅雷不及掩耳之势覆盖开来,音乐动漫涂鸦,微博微信抖音,连看个剧都能随时抓拍到它...

  • 1.3

    语法: ここは デパートです 食堂(しょくどう)は デパートの 7階です あそこも ジエーシー企画(きかく)の ビ...

  • 1.3

    python_score =50 c_score =50 # 要求只要有一门成绩 > 60 分就算合格 if py...

网友评论

      本文标题:作业:1.3

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