爬虫怎么获取尖括号外面的内容?

我使用Python的requests库和BeautifulSoup 爬一个Ktwon4U的网页,想要获取销量数据。
我的格式belike:

soup=BeautifulSoup(html,"html.parser")
all_sales = soup.findAll("span",attrs={"class":"stxt"})
for sale in all_sales:
print(sale)

但是输出来的结果是

span class="stxt" id="fanc203739"/span
span class="stxt" id="fanc203740"/span
span class="stxt" id="fanc203741"/span
span class="stxt" id="fanc203742"/span
span class="stxt" id="fanc200094"/span

原来的网页内容是这样的
span class="stxt" id="fanc203739"/span>售销记录=3537

我真正想要的数据是售销记录,但是获得的结果只有前面的尖括号


for sale in all_sales:
    print(sale.get_text())

你试一试这样呢?

  • 这篇博客: 还在为找房子发愁,在网页一个一个手动点击收集信息?学会python,爬虫一键帮你搞定中的 本次小案例同样是利用python当中两个关键库,requests和BeautifulSoup,发起请求,解析网页数据,对这两个库的使用不太熟悉的小伙伴可以网上查查资料学习一下,我就不在这过多解释了,主要聊一下怎么用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、首先,一定要在代码文件开头,将两个工具库导入

    import requests
    from bs4 import BeautifulSoup
    
    

    2、两个库准备好之后,就可以将发起请求的功能封装在函数体当中

    # 获取当前url下的页面内容,返回soup对象
    def get_page(link_url):
    	response = requests.get(link_url)
    	soup = BeautifulSoup(response.text, 'lxml')
    	return soup
    

    3、请求发起之后,分析网页代码,找到我们想要的具体链接,存入到列表当中

    # 获取所有房源链接
    def get_links(url):
    	soup = get_page(url)
    	# find_all是获取全部信息
    	link_div = soup.find_all('div', class_='content__list--item')  # 获取到包含链接的div
    	links = [url+div.a.get('href') for div in link_div]  # 列表推导式打印所有房源url
    	return links
    

    利用find_all函数获取soup对象当中所有的content__list–item,将对应的url获取到,并存入列表
    在这里插入图片描述
    4、批量获取到我们的链接信息之后,深入到链接所对应的界面,分析网页端代码,将其封装到函数体中
    find函数获得单条数据,找到对应div和相应的class的值进行锁定**

    money = page_res.find('div', class_='content__aside--title')
    danwei = page_res.find('div', class_ = 'content__aside--title')
    

    5、其他的信息同样道理,组合使用find_all和find方法获取相应信息

    # 房屋信息
    house_info = page_res.find_all('div', class_ = 'content__article__info')
    house_title = page_res.find('p', class_ = 'content__title')# 房源标题
    		
    # 基本信息
    base_info = page_res.find_all('li', class_ = 'fl oneline')  # 以列表存储
    area = base_info[1].text[3:]  # 面积
    direction = base_info[2].text[3:]
    weihu = base_info[4].text[3:]
    ruzhu = base_info[5].text[3:]
    floor = base_info[7].text[3:]
    dianti = base_info[8].text[3:]
    chewei = base_info[10].text[3:]
    water = base_info[11].text[3:]  # 用水
    elec = base_info[13].text[3:]  # 用电
    ranqi = base_info[14].text[3:]  # 燃气
    cainuan = base_info[16].text[3:] # 采暖
    zuqi = base_info[18].text[3:]  # 租期
    kanfang = base_info[21].text[3:]  # 看房
    

    6、使用字典进行存储,方便管理

    global info
    		info = {
    			"房屋标题":house_title.text,
    			"房屋链接":i,
    			"价格":money.find('span').text+danwei.text[5:8],
    			"面积":area,
    			"朝向":direction,
    			"维护":weihu,
    			"入住":ruzhu,
    			"楼层":floor,
    			"电梯":dianti,
    			"车位":chewei,
    			"用水":water,
    			"用电":elec,
    			"燃气":ranqi,
    			"采暖":cainuan,
    			"租期":zuqi,
    			"看房":kanfang
    		}
    

    最后按需遍历即可,放一部分结果如下图:
    在这里插入图片描述