吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2005|回复: 23
收起左侧

[求助] 新手用python写的第一个爬虫,内容不知道怎么保存,请大牛们帮忙指导一下

[复制链接]
dsct3003 发表于 2020-6-2 08:44
本帖最后由 dsct3003 于 2020-6-2 22:08 编辑

这是自己自学写的第一个房产的网络爬虫,想爬取的内容能够输出,但无法保存写入。主要是不知道如何把字典写入到文本,希望论坛大牛给予帮助。。。由于第一次写,代码的结构顺序也比较乱,还望大家不要取笑。。



[Asm] 纯文本查看 复制代码
coding='utf-8'
import requests
from bs4 import BeautifulSoup
import os

Headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}

if not os.path.exists('./链家房产信息'):
    os.makedirs('./链家房产信息')[i]#创建一个保存链家房产信息的文件夹
[/i][i]
[/i]def get_pega_urls(url):

    respans=requests.get(url=url,headers=Headers)
    respans.encoding=respans.apparent_encoding
    soup=BeautifulSoup(respans.text,'lxml')
    urls=soup.find_all('a',{'class':"noresultRecommend"})[i]#找到存放每一页信息的url的tag
[/i][i]    [/i]for i in urls:
        pega_urls=i['href']
        yemian=pega_info(pega_urls)
        print(yemian)
   
def pega_info(url):
    yemian={}
    respan=requests.get(url,headers=Headers)
    respan.encoding=respan.apparent_encoding
    soup=BeautifulSoup(respan.text,'lxml')

    info=soup.select('div.communityName')
    xqmz=info[0].select('a')[0].get_text()
    yemian['小区名称: ']=xqmz
    jbxx=soup.select('div.m-content')
    hx=jbxx[0].select('li')[0].get_text()
    yemian['房屋户型: ']=hx
    price=soup.select('div.price')
    qian1=price[0].select('span')[0].get_text()
    qian2=price[0].select('span')[1].get_text()
    qian=qian1+qian2
    yemian['价格: ']=qian
    lc=jbxx[0].select('li')[1].get_text()
    yemian['所在楼层: ']=lc
    mj=jbxx[0].select('li')[2].get_text()
    yemian['建筑面积: ']=mj
    jg=jbxx[0].select('li')[3].get_text()
    yemian['户型结构: ']=jg
    snmj=jbxx[0].select('li')[4].get_text()
    yemian['套内面积: ']=snmj
    lx=jbxx[0].select('li')[5].get_text()
    yemian['建筑类型: ']=lx
    cx=jbxx[0].select('li')[6].get_text()
    yemian['房屋朝向: ']=cx
    jg=jbxx[0].select('li')[7].get_text()
    yemian['建筑结构: ']=jg
    zxqk=jbxx[0].select('li')[8].get_text()
    yemian['装修情况: ']=zxqk
    th=jbxx[0].select('li')[9].get_text()
    yemian['梯户比例: ']=th
    gn=jbxx[0].select('li')[10].get_text()
    yemian['供暖方式: ']=gn
    bt=jbxx[0].select('li')[11].get_text()
    yemian['配备电梯: ']=bt


    return yemian

def spider():
    base_url='https://zz.lianjia.com/ershoufang/pg{}/'
    for i in range(1,8):
        url=base_url.format(str(i))[i]#获取1—8页的url
[/i][i]        [/i]pega_urls=get_pega_urls(url)
        print('=*'*30)
        print('开始爬取第'+str(i)+'页')[i]#输出一个分页标志
[/i][i]
[/i]spider()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

no-problem 发表于 2020-6-2 09:41
纳尼     直接将获得参数 通过文本写进去呗   
隋戈子 发表于 2020-6-2 09:41
顺其自然1231 发表于 2020-6-2 09:41
建议看看numpy 和 pandas两个模块,pandas基于numpy扩展,读取,处理,保存文件都很快捷方便。
Zeaf 发表于 2020-6-2 09:43
建议用pandas库,输出表格
 楼主| dsct3003 发表于 2020-6-2 09:50
no-problem 发表于 2020-6-2 09:41
纳尼     直接将获得参数 通过文本写进去呗

试过,不可以的噢!
 楼主| dsct3003 发表于 2020-6-2 09:52
隋戈子 发表于 2020-6-2 09:41
排版你可以先弄好一下

第一次发帖,没经验,下次注意
知心 发表于 2020-6-2 09:56
dsct3003 发表于 2020-6-2 09:52
第一次发帖,没经验,下次注意

建议楼主编辑重排一下。要不可能没有大牛来帮忙了。不能找别人帮忙的时候给别人增加麻烦
chinaqin 发表于 2020-6-2 09:57
直接csv多好的,
知心 发表于 2020-6-2 09:57
你可以百度一下python怎么写入表格。然后把获取到的内容输入到表格中。获取的内容整理为元组字典,遍历输出
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-15 20:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表