Python实战:抓取小猪短租租房信息

最终成果:

我的代码:

from bs4 import BeautifulSoup
import requests
url = 'http://bj.xiaozhu.com/'
urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1, 14)]
urls.insert(0, url) # 得到13个网页的网址

info = [] # 保存得到的信息
def print_gender(class_name): # 得到房主的性别
if class_name == 'member_ico1':
return '女'
if class_name == 'member_ico':
return '男'

def get_attractions(url): #得到单个租房网址上的信息
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml')
title = soup.select('div.pho_info > h4')[0].text.strip()
addr = soup.select('div.pho_info > p')[0].get('title')
price = soup.select('div.day_l > span')[0].text
house_pic1 = soup.select('div.pho_show_big > div > img')[0].get('src')
host_pic = soup.select('div.member_pic > a > img')[0].get('src')
host_name = soup.select('div.w_240 > h6 > a')[0].text
host_gender = soup.select('div.member_pic > div')[0].get('class')[0]

data = {
'title':title,
'addr':addr,
'price':price,
'house_pic1':house_pic1,
'host_pic' :host_pic,
'host_name':host_name,
'host_gender':print_gender(host_gender),
}
info.append(data)
print(data)

links = []
def get_link(urls): #得到所要抓取网页的链接
for url in urls:
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml')
link = soup.select('ul > li > a.resule_img_a')

for i in range(len(link)):
links.append(link[i].get('href'))

get_link(urls)
for url in links: #循环得到每个网页上所有链接网页上的信息
get_attractions(url)

总结:

1. 获取标签信息的路径的方法,查看单个标签的唯一性路径

2.利用字符串的strip函数,去除字符串两边的空格,回车和Tab键

3.利用函数使代码清晰化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我很幸运,自打上班以来无论走到哪里总有那么一两个人对我特别好,就是一拍即合,一见如故,相见恨晚的那种。 任和梁,这...
    厉姣姣阅读 799评论 0 1
  • 因为电影黄金时代对萧红这位民国时期的女作家产生了好奇,因为她那句“我的笔锋,就是要对准人类的愚昧”的话让我有了读这...
    河马妈妈育儿奇想阅读 234评论 0 0
  • 想出去走走,阳光,沙滩,大海,椰林~心自在,身自在~
    小鱼妖阅读 209评论 1 6
  • 下乡回家,晚上大概是喝了红牛所以很提神,我这个要睡觉的人那时候可没想到这功效。23.10分左右关网开始入睡,两个小...
    明天不散步了阅读 412评论 0 0
  • 抵达北京的那天,持续了一周多的红色预警刚刚解除,难得可以回家喘口气了,无奈空气里的“烟味儿”比一年前又浓郁了些。 ...
    KuRiii阅读 388评论 2 3