最終成果:
我的代碼:
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個網(wǎng)頁的網(wǎng)址
info = [] # 保存得到的信息
def print_gender(class_name): # 得到房主的性別
if class_name == 'member_ico1':
return '女'
if class_name == 'member_ico':
return '男'
def get_attractions(url): #得到單個租房網(wǎng)址上的信息
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): #得到所要抓取網(wǎng)頁的鏈接
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: #循環(huán)得到每個網(wǎng)頁上所有鏈接網(wǎng)頁上的信息
get_attractions(url)
總結(jié):
1.?獲取標(biāo)簽信息的路徑的方法粉洼,查看單個標(biāo)簽的唯一性路徑
2.利用字符串的strip函數(shù)鹿寨,去除字符串兩邊的空格除呵,回車和Tab鍵
3.利用函數(shù)使代碼清晰化