爬虫学习之2:BeautifuSoup爬取58租房数据

      周末了有点累,不想看别的书,学习下爬虫放松一下,简单了解了下BeautifulSoup库和Requests库,用之爬取58同城租房数据,代码较简单,才初学还有很多待完善地方,大神勿喷,贴出来仅为记录一下,写完博客打把农药睡觉。

      这个程序设置了爬取页数为3页,为了反爬,爬取每一页间隔时间简单设置为2秒。代码如下:

import requests
from bs4 import BeautifulSoup
import time

#请求头
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                 'Chrome/49.0.2623.112 Safari/537.36'}
#获取详情页链接
def get_links(url):
    web_data = requests.get(url,headers=headers)
    soup = BeautifulSoup(web_data.text, 'lxml')
    links = soup.select('.des  h2  a')
    for link in links:
        href = link.get("href")
        get_info(href)


#获取详情页信息
def get_info(url):
    if(url is None):
        return
    else:

            web_data = requests.get(url, headers=headers)
            soup = BeautifulSoup(web_data.text, 'lxml')
            tittles = soup.select('body > div.main-wrap > div.house-title > h1')
            prices = soup.select(
            'body > div.main-wrap > div.house-basic-info > div.house-basic-right.fr > div.house-basic-desc > div.house-desc-item.fl.c_333 > div > span.c_ff552e > b')
            areas = soup.select(
            'body > div.main-wrap > div.house-basic-info > div.house-basic-right.fr > div.house-basic-desc > div.house-desc-item.fl.c_333 > ul > li:nth-of-type(2) > span:nth-of-type(2)')
            for tittle,price,area in zip(tittles,prices,areas):
                data = {
                    '房屋名称': tittle.get_text().strip(),
                    '价格': price.get_text().strip(),
                    '面积': area.get_text().strip(),
                }
                print(data)
if __name__ == '__main__':
    urls = ['http://cx.58.com/chuzu/pn{}'.format(number) for number in range(1,3)]
    fileName = 'D:/58.json'
    for single_url in urls:
        get_links(single_url)
        time.sleep(2)

没有保存到文件,只是简单的print,运行效果部分截图如下:



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值