python3 爬虫之爬取安居客二手房资讯(第一版)

摘要:
#!
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author;Tsukasa
import requests
from bs4 import BeautifulSoup
import pandas
import time
url_all = []
url_in = input('输入你所需要城市的字母简写:
如:中山 zs , 广州 gz
!!!不要乱输入,不然运行不了')
url_number = 1+int(input('输入爬取页数:'))
okl = []
def open(nobe):
    res = requests.get(nobe)
    soup = BeautifulSoup(res.text,'html5lib')
    http_start = []
    url_start = 'http://esf.'+url_in+'.fang.com'
    for title in soup.select('.houseList dl'):  #网址链接列表
        url_end = title.select('.title a ')[0]['href']
        http_start.append(url_start + url_end)
    return http_start
#获取详细信息
def content(url):
    info = {}
    info['网页'] = url
    res = requests.get(url)
    soup = BeautifulSoup(res.text,'html5lib')
    info['标题'] = soup.select('h1')[0].text.strip()  #获取标题
    info['总价'] = soup.select('.red20b')[0].text + '万'   #总价
    info['联系电话'] = soup.select('#mobilecode')[0].text   #电话
    for sl in soup.select('span'):  #获取发布时间
        if '发布时间' in sl.text.lstrip('<span>'):
            key , value = (sl.text.strip().rstrip('(').split(':'))
            info[key] = value + '*' + soup.select('#Time')[0].text
    for dd in soup.select('dd'):  #获取详细内容
        if ':' in dd.text.strip():
            key , value = (dd.text.strip().split(':'))
            info[key] = value
    return info
print('----------正在运行,请不要关闭----------')
url_home = ('http://esf.'+ url_in + '.fang.com/house/i3{}/')
for url_next in range(1,url_number):
    url_all.append((url_home.format(url_next)))
home = []
for i in url_all:
    a = (open(i))
    print('正在获取 -----> ',i,' <-----')
    time.sleep(1)
    for b in a:
        home.append(content(b))
        print('	正在获取详细信息 -> ',b,' <-----')
        time.sleep(2)
    #home.append(content(open(i[0])))
last = pandas.DataFrame(home)
last.to_excel('temp.xlsx',sheet_name='房源信息')
print('----------运行结束----------

----------查看根目录---------')
abcdefg = input('完成运行')

源码先奉上,以后在填坑

免责声明:文章转载自《python3 爬虫之爬取安居客二手房资讯(第一版)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SaltStack匹配target-第六篇用SharePoint Designer 2007 设计SharePoint 3_0 工作流(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基础sql整理

参考https://www.cnblogs.com/yoyoketang/ student表: grade表: 1.查询所有学生的数学成绩,显示学生姓名name,分数由高到低 SELECT a.name,b.score from sentiment.student a left join sentiment.grade b on a.id = b.id...

Sql 本周当天本期日期转换

--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info where DateDiff(hh,datetime,getDate())<=24 --info为表名,da...

[转]oracle系统表v$session、v$sql字段说明

在本视图中,每一个连接到数据库实例中的 session都拥有一条记录。包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等。 V$SESSION中的常用列 V$SESSION是基础信息视图,用于找寻用户 SID或 SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例: SQL_HASH_VALUE, SQL_A...

python3 -m uiautomator2 init 报错解决

今天想学习下uiautomator2 模块,但是第一步就卡住了,python3 -m uiautomator2 init 初始化的时候报错了,报错信息如下主要是 ConnectionRefusedError: [Errno 61] Connection refused 连接被拒绝。解决办法 卸载原来的uiautomator2 模块 重新安装 然后在执行 p...

Oracle EBS:追踪PO全过程

1.创建POPO_HEADERS_ALLselect po_header_id from po_headers_all where segment1 =;select * from po_headers_all where po_header_id =; po_lines_allselect * from po_lines_all where po_he...

MySQL学习笔记:生成一个时间序列

  今天遇到一个需求是生成以下表格的数据,一整天24小时,每秒一行数据。      寻找颇旧,找到另外两个实现的例子,暂且学习一翻。另一个见另外一篇。 SELECT DATE_ADD('2018-01-01',INTERVAL @i := @i + 1 DAY) AS DATE FROM (SELECT 1 UNION ALL SELECT 1 UNION...