女朋友比较喜欢民宿风格,我就用python爬了一个短租民宿网站,做个合格的男朋友!
我给女朋友发了20000句情话,她暂时不想听情话了!(详见:女朋友抱怨不会说情话,用python给她发了20000句!让她见识见识情话大全!https://www.52pojie.cn/thread-1113388-1-1.html(出处: 吾爱破解论坛))女朋友最近不找我下五子棋了!(详见:女朋友下棋比我厉害,还特别嚣张,不能忍。拿python敲个辅助,看她如何嚣张!https://www.52pojie.cn/thread-1116867-1-1.html(出处: 吾爱破解论坛))
不过也没怼我,上次的表情包好像白存了,不过还是留着吧,万一派上用场了呢?(详见:为了防止女朋友怼我,我就先用python爬了3600个怼人表情包等她来战!https://www.52pojie.cn/thread-1118801-1-1.html(出处: 吾爱破解论坛))
也不知道你们找到女朋友了没有,找到的话,一起来交流研究!(详见:别再酸了,女朋友是不可能发,但是可以用python帮你创造机会搞到一个!搞到来告诉我!https://www.52pojie.cn/thread-1119202-1-1.html(出处: 吾爱破解论坛))
女朋友存了好多网上的男明星的照片,我准备用python全部换成我的脸!https://www.52pojie.cn/thread-1120431-1-1.html(出处: 吾爱破解论坛)
为了知道女朋友的小秘密,我用python爬了榜姐微博下60000个女生小秘密!https://www.52pojie.cn/thread-1123043-1-1.html(出处: 吾爱破解论坛)
女朋友每晚都给我发诱惑图,我用python搞了更多诱惑图反击她!https://www.52pojie.cn/thread-1128807-1-1.html(出处: 吾爱破解论坛)
女朋友要和我拼手速,不得不用python让她见识我的手速!年轻人,不要试图和你不知...https://www.52pojie.cn/thread-1139015-1-1.html(出处: 吾爱破解论坛)
为了看看女朋友生日那天是什么样子,我用python爬了一年的照片!https://www.52pojie.cn/thread-1144764-1-1.html(出处: 吾爱破解论坛)
女朋友说A罩杯最流行,我用python爬了几十万的购买数据来证明她是在狡辩!https://www.52pojie.cn/thread-1145712-1-1.html(出处: 吾爱破解论坛)
女朋友说因为异性相吸,所以容易产生真爱!我觉得得用python验证一下!https://www.52pojie.cn/thread-1151862-1-1.html(出处: 吾爱破解论坛)
周扬青和罗志祥分手,女朋友说要去周扬青吧看看有没有经验贴,我只好用python快速...https://www.52pojie.cn/thread-1163712-1-1.html(出处: 吾爱破解论坛)
前几天女朋友让我找一下短租网站上的信息,我就用python爬了一个短租民宿网站,本来打算分享一下代码,但是嘛还是先和女朋友研究一下我爬来的信息比较重要,所以就拖着了。
然后有点忙和累,没什么力气和动力来分享代码,今天就趁着女朋友洗澡的时间来分享一下代码,看看是我发帖快还是她洗澡快吧。
找到一个民宿短租网站
小猪短租:https://www.xiaozhu.com
(我还以为是小猪开的呢)
找一下目标城市,然后观察网址规律
很简单就能看出来,也就是变换了一下网址的数字,和页码一样,所以就可以凭借网址了,
用range函数来生成数字,然后拼接网址。
然后查看详情页的链接是href中,可以用xpath提取。
详情页的信息也可以用xpath提取。
代码如下(喜欢和女朋友分床睡的朋友就不用if来判断了):
import requests #导入requests库 pip install requests
from lxml import etree #从lxml库导入etree
#设置请求头
headers = {
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36",
"Cookie" : "BAIDUID=04210E0953548D299B0D4ECDDF05AFB1:FG=1"
}
all_infos = [] #设置空列表,用来装信息
for i in range(1,50): #依次生成1-49,,49页差不多挺多的了,再多就挑花眼了
# url = "http://tianjin.xiaozhu.com/search-duanzufang-p2-0/" #第2页
# url = "http://tianjin.xiaozhu.com/search-duanzufang-p3-0/" #第3页
url = "http://tianjin.xiaozhu.com/search-duanzufang-p" + str(i) + "-0/"#拼接网址
res = requests.get(url,headers=headers).text #用requests库的get函数来访问url,并将信息转换为文本格式
# print(res) #打印查看
res_xpath = etree.HTML(res) #转换为xpath格式
urls = res_xpath.xpath('//*[@id="page_list"]/ul/li/a/@href') #在浏览器中获得每个短租详情页的网址
# print(urls) #打印查看
for url in urls: #依次获得urls列表中的元素url
res = requests.get(url,headers=headers).text#注释参考上边
print(res)
res_xpath = etree.HTML(res)
bed = res_xpath.xpath('//*[@id="introduce"]/li/h6/text()')
print(bed)
bed = "".join(bed) #将列表数据转换为str
if bed == "共1张": #如果 bed==“共1张”,也就是一张床的话,执行以下代码
title = res_xpath.xpath('//*[@class="pho_info"]/h4/em/text()')
# print(title)
all_infos.extend(title) #list.extend可以直接将列表作为str添加到列表,此时title中只有一个元素
address = res_xpath.xpath('//*[@class="pho_info"]/p/@title')
# print(address)
all_infos.extend(address)
price = res_xpath.xpath('//*[@id="pricePart"]/div/span/text()')
# print(price)
all_infos.extend(price)
content = res_xpath.xpath('//*[@id="introducePart"]/div/div/div/p/text()')
# print(content)
content = "".join(content)
all_infos.append(content)
traffic = res_xpath.xpath('//*[@id="introducePart"]/div/div/div/p/text()')
# print(traffic)
traffic = "".join(traffic)
all_infos.append(traffic)
else: #如果不是1张床的话
pass #pass 完全不考虑的了!
for all_info in all_infos:
with open("天津短租.txt","a") as f: #打开一个名为“天津短租”的txt文件,“a"追加写入
f.write(all_info + "\n") #写入信息和换行
print("保存完成!")
分享完成,女孩子洗澡时间是真长呀! 你和你女朋友这样开车合适吗? 学习的时候也要吃狗粮,太难了{:17_1079:} 真牛,给你敲个大大的合格男友章 走走走带她去民宿去 {:1_909:}我怀疑你在开车 我找不到证据 什么意思啊 就这?学到了。 学习的时候也要吃狗粮 就这,就这?就这?那么爬虫有了,女朋友哪里领呢?{:1_918:}