草庐IT

爬取xx楼市随笔

wddzb 2023-04-15 原文

目标:爬取xx二手房楼市信息自己分析形势

目的:记录重温爬虫历程

1、引用包requests,random,time,pandas,bs4

2、查询:bs4使用方法,re。comple,以及他山之石。

3、思路:简单应用,直接写死不用def,class,

  -url 列表,初始列表后,append添加翻页url

  -headers,不加也可,网页写死的。

  -网页内数据写死的,爬网页即可,适合新手。

  -顺序:url-->-->空字典-->headers-->for-->bs4-->append添加字典列表-->pd.to-csv time.sleep(random.randint())

源代码:

import requests,random,time
import re
import pandas as pd
from bs4 import BeautifulSoup
shuju = {
"房子":[],
'房型':[],
'地址':[],
'面积':[],
'售价':[],
'单价':[],
'中介':[],
'更新时间':[]
}


url = ["https://xxxx"]
urllist= ['https://xxxx'+str(x) for x in range(2,17)]
headers = {
'User-Agent': 'xxxx.56'
}
for i in urllist:
  url.append(i)
gg=0

for xx in url:
  res = requests.get(url=xx,headers=headers)
  respone=BeautifulSoup(res.text,'html.parser')
  all_li = respone.find('ul',class_='item-list').find_all('li')
  for i in all_li:
    name1 = i.find('p',class_='title').find('a',target="_blank").text
    faxing = i.find('p',class_='detail').find('span').text
    address = i.find('span',class_='maps').text
    mianji = i.find('span',class_='area-detail_big').text
    money = i.find('em',class_='prices').text
    danjia = i.find('div',class_='content fl').find('div',class_='about-price').find('p',class_='tag').text
    zj = i.find('p',class_='agents').find('a').text
    uptime = i.find('p',class_='agents').find('span').text
    shuju["房子"].append(name1)
    shuju["房型"].append(faxing)
    shuju["地址"].append(address)
    shuju["面积"].append(mianji)
    shuju["售价"].append(money)
    shuju["单价"].append(danjia)
    shuju["中介"].append(zj)
    shuju["更新时间"].append(uptime)
    gg+=1
    print(danjia)
    time.sleep(random.randint(0,1))
    print('第{}条ok!'.format(gg))


df = pd.DataFrame(shuju)
df.to_csv('xxxx楼市二手房数据.csv',encoding='utf-8-sig')
print('爬完了')

 

 

以上注意缩进,怕忘备查。看得懂代码的都应知道了,我就不注释了。

有关爬取xx楼市随笔的更多相关文章

  1. javascript - 使用 PostBack 数据爬取页面 javascript Python Scrapy - 2

    我正在通过Scrapy使用ASP.NET编程爬取一些目录。要抓取的页面是这样编码的:javascript:__doPostBack('ctl00$MainContent$List','Page$X')其中X是1到180之间的整数。MainContent参数始终相同。我不知道如何爬进这些。我很想在SLE规则中添加一些像allow=('Page$')或attrs='__doPostBack'这样简单的东西,但我想我必须为了从javascript“链接”中提取信息,需要一些技巧。如果更容易从javascript代码中“揭开”每个绝对链接并将它们保存到csv,然后使用该csv将请求加载到新的抓

  2. javascript - jQuery 窗口滚动事件。每滚动 XX 像素 - 2

    我正在为一个项目使用出色的jQueryReel插件(http://jquery.vostrel.cz/reel)。我想绑定(bind)到窗口滚动事件,所以当用户向下滚动页面时,插件前进1帧,也就是说每滚动10像素,如果用户向上滚动,动画就会反转。该插件有一些方法,我可以毫无问题地将值传递给它,而且我知道如何绑定(bind)到窗口滚动事件。我正在挣扎的是最后一个。我如何使用jQuery/JavaScript表示在任何垂直方向上每滚动10个像素在动画中前进1帧?我知道我可以将窗口滚动存储在一个变量中,但我不确定每次它达到10的倍数时如何提前一帧。非常感谢。编辑感谢以下用户的帮助,我制定了解

  3. javascript - 存在 4xx 或 5xx Http 错误代码时在 Javascript 中解析 JSONP 响应 - 2

    我正在实现一个应用程序,该应用程序依赖于JavaScript客户端和知道如何使用JSONP表示法响应客户端的服务器之间的通信。我试图在我的Javascript客户端中处理我的服务器返回4xx或5xx的http状态代码的情况。目前我看到的是脚本没有被评估,因为浏览器认为它是一个错误(它是。)但是,我仍然想阅读我的服务器在这个4xx或5xx响应的情况下必须说的话我的JavaScript客户端中的代码。我看到这确实会在脚本标记元素上引发错误,但我担心这不是跨浏览器的,也不是一个可靠的解决方案。即使http状态代码为4xx或5xx,是否有人仍然能够解析jsonp响应?我开始相信我应该只使用这个

  4. go - 来自 xx.xx.xx.xx :14333: EOF 的 TLS 握手错误 - 2

    我在Linux(RHEL7)中运行HTTPS服务器。我一启动服务器就收到以下错误。2019/09/0415:46:16http:TLShandshakeerrorfromxx.xx.xx.xx:60206:EOF2019/09/0415:46:21http:TLShandshakeerrorfromxx.xx.xx.xx:31824:EOF此错误在终端中自动且持续出现。下面是创建https服务器的代码-packagemainimport("fmt""net/http""github.com/gin-gonic/gin")funcmain(){fmt.Println("Startingw

  5. python - 使用Scrapy爬取本地XML文件-起始URL 本地文件地址 - 2

    我想用scrapy抓取我在我的下载文件夹中的一个本地xml文件,使用xpath提取相关信息。将scrapy简介用作guide2016-01-2412:38:53[scrapy]DEBUG:Retrying(failed2times):[Errno2]Nosuchfileordirectory:'/sayth/Downloads/20160123RAND0.xml'2016-01-2412:38:53[scrapy]DEBUG:Gaveupretrying(failed3times):[Errno2]Nosuchfileordirectory:'/sayth/Downloads/2016

  6. java - sonar-maven-plugin fails because of invalid checkstyle.xml (The processing instruction target matching "[xX][mM][lL]"is not allowed) - 2

    我将Maven3.2.1和SonarQube4.5与Checkstyle5.6结合使用。执行中mvnsonar:sonar对于某些项目工作正常,但其他项目失败并显示“无法执行Checkstyle:无法读取...checkstyle.xml-无法解析配置流-处理指令目标匹配”[xX][mM][lL]“不被允许”。这是输出:###~\.mavenrc###SetJAVA_HOMEformavento/opt/Oracle_Java/jdk1.7.0_67###SetMAVEN_OPTSto-Xmx512m-XX:MaxPermSize=512m[INFO]Scanningforprojec

  7. [已解决]2002-can‘t connect to server on 192.168.xx.xx(10061)MySQL数据库无法远程连接 - 2

    MySQL数据库无法连接到Linux系统中的MySQL服务器上,我来总结一下我踩过的坑吧,希望伙伴们能注意一下我使用的虚拟机和服务,数据库客户端链接工具VMdocker MySQL57navicat出现上面问题的原因一般有以下几种?1.Linux中的防火墙没有关闭关闭防火墙命令systemctlstopfirewall#临时关闭防火墙systemctldisablefirewall#永久关闭防火墙2.远程MySQL中的端口号和navicat上的端口号不一致使用以下命令登录到MySQL中dockerexec-itmysql/bin/bash 进入到容器内部登录MySQLmysql-u用户名-p密

  8. Node16.xx 解压版安装 - 2

    Node16.xx解压版安装1.下载解压版Node安装包下载地址:http://nodejs.cn/2.解压Node安装包将安装包解压在安装目录下(注:可以根据需要,解压到自己定义的目录下)如:D:\devenvironments\nodejs\node-v16.16.0同时新建两个文件夹node_cache:npm缓存路径node_global:npm全局安装路径3.配置环境变量1、右击我的电脑-->属性-->高级系统设置-->高级-->环境变量2、在系统变量里新建变量变量名:NODE_HOME变量值:D:\devenvironments\nodejs\node-v16.16.0(Node的

  9. Python:使用Selenium和requests爬取文章 - 2

    01需求描述在微信公众号上面,其实有很多很不错的文章,但是微信官方给我提供的方式只有几种:点赞、收藏、在看。或者有时候,有人通过转发到自己的朋友圈的方式,做文章的留存。因此,爬取与存储微信公众号的文章的需求便产生了。02用Python实现的爬取工作通过Python的【Selenium】与【】,我实现了一个简易的爬虫;并且通过ruamel.yaml,将不同的爬取需求需要更改的设置统一到了一个配置文件中,便于工具化的使用。该脚本工具对应的代码在这里,需要的朋友可以自行下载:https://download.csdn.net/download/huangbangqing12/8740092503脚本

  10. Python爬虫学习-简单爬取网页数据 - 2

    疫情宅家无事,就随便写一些随笔吧QwQ…  这是一篇介绍如何用Python实现简单爬取网页数据并导入MySQL中的数据库的文章。主要用到BeautifulSouprequests和pymysql。  以网页https://jbk.39.net/mxyy/jbzs/为例,假设我们要爬取的部分数据如下图所示:一、准备工作  1.导入BeautifulSoup和requests库:frombs4importBeautifulSoupimportrequests  2.要想获得网页html内容,我们首先需要用requests库的.get()方法向该网页的服务器构造并发送一个请求。requests.ge

随机推荐