'''05_链家数据ToMongo.py'''
import requests
import re
import pymongo
class LianjiaSpider:
def __init__(self):
self.baseurl = "https://bj.lianjia.com/ershoufang/pg"
self.page = 1
self.headers = {"User-Agent":"Mozilla/5.0"}
self.proxies = {"http":"http://309435365:[email protected]:16817"}
self.conn = pymongo.MongoClient("localhost",27017)
self.db = self.conn.Lianjia
self.myset = self.db.housePrice
def getPage(self,url):
res = requests.get(url,proxies=self.proxies,headers=self.headers,timeout=5)
res.encoding = "utf-8"
html = res.text
print("页面爬取成功,正在解析...")
self.parsePage(html)
def parsePage(self,html):
p = re.compile('<div class="houseInfo".*?data-el="region">(.*?)</a>.*?<div class="totalPrice">.*?<span>(.*?)</span>(.*?)</div>',re.S)
r_list = p.findall(html)
# [("天通苑","480","万"),()..]
print("页面解析完成,正在存入数据库...")
self.writeTomongo(r_list)
def writeTomongo(self,r_list):
for r_tuple in r_list:
D = {"houseName":r_tuple[0].strip(),\
"totalPrice":float(r_tuple[1].strip())*10000}
self.myset.insert(D)
print("存入数据库成功")
def workOn(self):
while True:
c = input("爬取按y(q退出):")
if c.strip().lower() == "y":
url = self.baseurl + str(self.page) + "/"
self.getPage(url)
self.page += 1
else:
print("爬取结束,谢谢使用!")
break
if __name__ == "__main__":
spider = LianjiaSpider()
spider.workOn()
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
链家数据ToMongo.rar (1个子文件)
05_链家数据ToMongo
05_链家数据ToMongo.py 2KB
共 1 条
- 1
资源评论
阿部春光
- 粉丝: 307
- 资源: 103
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功