毕设01--第一阶段的内容

本文介绍了一个具体的爬虫案例,包括批量生成URL及使用PyQuery库抓取房源数据的过程,并讨论了反爬措施及数据保存方式。

1.模块名称:generate_url()

1.1 功能介绍

负责批量生成要爬取的url数据

1.2 界面截图或数据分析截图

1109696-20190330230244039-2060540405.png

1.3 代码截图

def generate_url():
    urls = []
    for i in range(1, 70):
        urls.append(urlStart + str(i) + urlEnd)
    return urls

2.模块名称:parse_href()

2.1 功能介绍

本爬虫的核心爬取模块,负责具体地完成对各项房源数据的爬取(使用了PyQuery库,可以以类似于文件路径的形式更加方便地匹配各种想要爬取的网页元素)

2.2 界面截图或数据分析截图

1109696-20190330230919051-1450368415.png

2.3 代码截图

def parse_href(page_url):
    tc_head = {  # 构造请求头
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Connection': 'keep-alive',
        'Host': 'xm.58.com',
        'Referer': 'https://xm.58.com/house.shtml?PGTID=0d3090a7-0025-e965-cac6-770c2149aa65&ClickID=2',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }
    response = requests.get(url=generate_url,headers=tc_head)
    if response.status_code == 200:
        response.encoding = response.status_code
        html = response.text
        doc = pq(html)
        lis = doc('body > div.mainbox > div > div.content > div.listBox > ul > li')  # 通过JS路径匹配要爬取的元素
        for value in lis.items():
            url = value('div.des > h2 > a').text()
            name = value('div.des > h2').text()
            info = value('div.des > p.room.strongbox').text()
            add = value('div.des > p.add > a:nth-child(1)').text() + value('div.des > p.add > a:nth-child(2)').text()
            rent = value('div.listliright > div.money > b')
            data = {
                "房源链接": url,
                "房源名称": name,
                "房源信息": info,
                "房源地址": add,
                "房源租金": rent
            }
            print(data)
        else:
            print("Request Fail")

3.总结

1.可以看出58同城部署了反爬措施,重要的租房数据已经使用了复杂的文字作为遮挡;目前正在寻求解决方法
2.关于数据的保存,目前有以下几种方法:存入.csv文件;存入数据库(MySQL);存入.txt文件
现在正在准备将数据插入数据库进行管理

转载于:https://www.cnblogs.com/wufuckshuo/p/10606069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值