from bs4 import BeautifulSoup
import requests
import re
def singal_url(url_arg):
urls = []
info = []
wb_data = requests.get(url_arg)
soup = BeautifulSoup(wb_data.text, 'lxml')
urls_temp = soup.select('#page_list > ul > li > a')
for url in urls_temp:
urls.append(url.get('href'))
#print(urls)
for url in urls:
singal_wb_data = requests.get(url)
soup = BeautifulSoup(singal_wb_data.text, 'lxml')
title = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > h4 > em')[0].get_text()
address = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span.pr5')[0].get_text().replace(' ','')[:-1]
price = soup.select('#pricePart > div.day_l > span')[0].get_text()
house_image = soup.select('#detailImageBox > div.pho_show_r > div > ul > li:nth-of-type(2) > img')[0].get('data-src')
owner_image = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > a > img')[0].get('src')
owner_name = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a')[0].get_text()
gender = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > div')[0].get('class')[0]
#print(type(gender[0]))
if gender == 'member_ico':
gender = 'man'
elif gender == 'member_ico1':
gender = 'woman'
else:
gender = ''
dic = {
'title':title,
'address':address,
'price':price,
'house_image':house_image,
'owner_image':owner_image,
'owner_name':owner_name,
'gender':gender
}
print(dic)
info.append(dic)
return info
def some_url(urls_arg):
urls = []
info = []
for url_arg_temp in urls_arg:
wb_data = requests.get(url_arg_temp)
soup = BeautifulSoup(wb_data.text, 'lxml')
urls_temp = soup.select('#page_list > ul > li > a')
for url in urls_temp:
urls.append(url.get('href'))
print(urls)
for url in urls:
singal_wb_data = requests.get(url)
soup = BeautifulSoup(singal_wb_data.text, 'lxml')
title = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > h4 > em')[0].get_text()
address = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span.pr5')[
0].get_text().replace(' ', '')[:-1]
price = soup.select('#pricePart > div.day_l > span')[0].get_text()
house_image = soup.select('#detailImageBox > div.pho_show_r > div > ul > li:nth-of-type(2) > img')[0].get(
'data-src')
owner_image = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > a > img')[0].get('src')
owner_name = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a')[0].get_text()
gender = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > div')[0].get('class')[0]
# print(type(gender[0]))
if gender == 'member_ico':
gender = 'man'
elif gender == 'member_ico1':
gender = 'woman'
else:
gender = ''
dic = {
'title': title,
'address': address,
'price': price,
'house_image': house_image,
'owner_image': owner_image,
'owner_name': owner_name,
'gender': gender
}
print(dic)
info.append(dic)
return info
'''
单张列表页
'''
# url = 'http://bj.xiaozhu.com/search-duanzufang-p1-0/'
# singal_info = singal_url(url)
# print(singal_info)
'''
多张列表页
'''
# urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(i) for i in range(1,301,1)]
# some_info = some_url(urls)
# print(some_info)
总结
- soup.select('XXXXXXXXXXX').get('class')出来的是list,get('src')出来的是str
- requests.get(url)获取真实网页后,Beautifulsoup('XXX'.text, 'lxml')使可读
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。