一个项目,需要维护崂山区的小区建成年代信息。相关部门给的数据并不全,自己去找这些数据也比较麻烦,后来发现安居客有相关的信息,于是想着爬取一下。
关键的代码就下面这几行:
for i in range(1,20): bs = BeautifulSoup(requests.get('https://qd.anjuke.com/community/laoshanqu/p' + str(i) + "/").content, "html.parser") info = bs.find_all('div', class_='li-info') for i in info: name = i.find('div', class_='li-title') year = i.find('span', class_='year') # if name: # print(name.text) if year: print(name.text, '-', year.text)
如果直接用上面的代码去跑会被检测到。找了个代理工具proxypool,但是效果比较差,跑了一晚上都没找到一个可用的代理,不知道是网络问题还是什么问题导致的。
于是只能用最笨的办法,直接保存了20页的html数据进行分析:
所以这变成了一个半自动的项目,等有时间在家试试这个代理工具效果吧,可能是公司网络问题导致的。
完整代码:
from bs4 import BeautifulSoup import time import random def get_build_year(): # https://qd.anjuke.com/community/laoshanqu/p1/ for i in range(1,20): body = '' filename = str(i)+ '.html' with open(filename) as f: body=f.read() bs = BeautifulSoup(body, "html.parser") info = bs.find_all('div', class_='li-info') for i in info: name = i.find('div', class_='li-title') year = i.find('span', class_='year') # if name: # print(name.text) if year: print(name.text, '-', year.text) # 按间距中的绿色按钮以运行脚本。 if __name__ == '__main__': print_hi('PyCharm') get_build_year()
17 comments
数据下载:
https://www.123pan.com/s/ucY7Vv-pq6HA.html提取码:D223
安居客:你礼貌吗
我也很绝望啊,我能怎么办呢?
我想到了 我之前用java爬壁纸来着,把一个网站爬了快1一个g的照片 哈哈哈哈
你这个域名是认真的吗?好长啊
哈哈哈,那肯定是认真的呀,顺不
哈哈哈哈你这个也很爽
没有可靠的ip代理池,最后变成了体力活
买完房了你给我看这个!
来把,再买一套~~~
哈喽忙不?来广场呀~
注册了,没看到频道呢~~
已经第一时间加进来了!
嗷吼~嗷吼~频道呢~~
木有啊~~
爬了自用就算了,最骚的是你还分享了,哈哈哈。
哈哈哈。这个数据嘛,本身量不大,正好可以看下崂山区的房价。表里面少了个字段,就是房价趋势。整体都是下跌的