1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| soup = BeautifulSoup(html, 'lxml') li_list = soup.select('.listContent > li') for li in li_list: try: img_origin = li.a.img['data-original'] # img_origin: 高清图片 href = li.select('div[class="title"]')[0].a['href'] # href: 详情页url lj_id = re.search(r'/(\d*).html', href).group(1) # lianjia id: 链家id title = li.select('div[class="title"]')[0].a.string # title: 标题 # 对title切割为:小区(community), 户型(layout), 面积(area) title_arr = title.split(' ') community = title_arr[0] layout = title_arr[1] area = title_arr[2] deal_date = li.select('div[class="dealDate"]')[0].string # dealDate: 成交时间 total_price = li.select('div[class="totalPrice"]')[0].span.string # totalPrice : 成交价格 position_icon = li.select('div[class="positionInfo"]')[0].contents[1] # positionInfo: 楼层位置及年代 floor = position_icon.split(' ')[0] # 楼层 age = position_icon.split(' ')[1] # 年限 source = li.select('div[class="source"]')[0].string # source: 交易来源 unit_price = li.select('div[class="unitPrice"]')[0].span.string # unitPrice: 单价(元/平米) session = saveChengjiaoToDB() sql = ("'insert into chengjiao(lj_id, img_origin, href, title, community, layout, area,", "deal_date, total_price, position_icon, floor, age, source, unit_price) values('") sql += lj_id + ',"' + img_origin + '","' + href + '","' + title + '","' + community + '","' + layout + '","' + area + '","' + deal_date + '","' + total_price + '","' + position_icon + '","' + floor + '","' + age + '","' + source + '","' + unit_price + '"' sql += ')' session.execute(sql) session.commit() except BaseException, e: print 'ERROR: ' + str(e) + ', URL: ' + url
|