因同事想在沈阳买房,对比分析沈阳各区的房价,让我帮忙爬取一下链家网相关数据,然后打 算记下笔记 用于总结学到的东西&用到的东西。

一.爬虫需要会什么?

学习东西 首先你要知道它是干嘛的。爬虫 顾名思义就是爬取你所看到的网页内容 小说/新闻/信息等。而网页相关的也就是 HTML 学过网页的最清楚不过了。 HTML(超文本标记语言) 用各种标签来识别内容,浏览器会翻译成所看到的网页页面,HTML只是个基础 展示的只是静态的网页(也就是不会动的陈列好的网页) 还需要美化的CSS 和 实现动态的JavaScipt。想学习的可以 参考 HTML 基础 | 菜鸟教程。做爬虫也不需要了解学习很多,只需要了解HTML是基于文档对象模型(DOM)的,以树的结构,存储各种标记。

接下来 就是python(我用的是python3.6) 中 爬虫相关的辅助库

Requests库 比较好用的HTTP库

BeautifulSoup库 优秀的HTML/XML解析库,采用来做爬虫 该库解析时需要个解析器 lxml

辅助的还有很多 由于本文只用到这两个 同时这两个基本足够了,有兴趣的可以百度学习别的。

二.爬虫实例(链家二手房):

1.URL(统一资源定位符 也称为网页地址):链家二手房

像标题所言 自行输入城市 并不是所有的爬虫都通用 要找到每个url 之间的规律,如下

很明显可以看出规律 https:// + city + .lianjia.com/ershoufang/pg +页码+/

由于 基本最多页码就100页 也就不需要自己输入页码(在程序中循环替换页码) 故笔记中 url则为

单页url:

a=1

url ='http://' + user_in_city +'.lianjia.com/ershoufang/pg{}/'

url1.url.format(a)

(或者直接写)

url ='http://' + user_in_city +'.lianjia.com/ershoufang/pg1/'

循环url:

user_in_city='sy'

url ='http://' + user_in_city +'.lianjia.com/ershoufang/pg{}/'

for a in range(1, 101):

url1 = url.format(a)

print(url1)

2.Request

我们可以requests.get(url) 来 Get该网页从而获取该html内容

import requests

url = 'http://sy.lianjia.com/ershoufang/pg1/'

page = requests.get(url)

print(page)

但是实践以后该网站会报错 403 服务器拒绝访问

这就需要我们添加headers 模仿浏览器访问,就变成下面代码

header = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}

page = requests.get(url1, headers=header)

a=page.text

print(a)

网页HTML.png

3.BeautifulSoup

BeautifulSoup 作为优秀的HTML/XML解析库 方便又简单

代码.png

如上图所见,点击小红色框框的三角 选中网页上的模块,阴影部分会自动跳到该模块的标签位置(大红色框框)可以把该部分的标签粘贴到本地 方便查看。

import requests

from bs4 import BeautifulSoup

url = 'http://sy.lianjia.com/ershoufang/pg1/'

header = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}

page = requests.get(url, headers=header) #访问网址 获取该 html内容

a = page.text

soup = BeautifulSoup(a,"lxml") #解析该网页内容

b=soup.find_all('div',class_='info clear') #find_all 找到 div class='info clear' 的标签

print(b)

爬取的内容就是我们需要的全部内容 中间会掺杂一些标签

6.去除标签

标签.png

图片中 我们可以看到 爬取出来中 还掺杂许多标签,而我们只需要文字,然后我想到了正则(可惜我不会,哈哈哈哈,有会的大神可以教教我)

但笨人有笨方法:我们一个一个解析 取文字

像图片中 【枫合万嘉 南北通透...】我们可以看出是 div标签 class='title' 的。(因为每页有很多个房源信息 所以我们要 for 循环)

其它标签亦然如此

去标签.png

我们还要爬出导入excle ,因此我在一个房源所有信息中加入[,] 方便我们后续分列 透视(只列出两个标签)

分列.png

7.标签去除掉 就要导入文件

with open("链家-沈阳-二手房-over", "a", encoding='utf-8') as f:

f.write(df+'\n')

我导入的是txt 文本 ,有需要可以导入 Excle Csv

8.分析数据(同事分析的一小部分数据)

分析.png

9.源代码

##author:Abel_chen

##防止你们照搬 我做了两个小错误 偷笑.jpg

import requests

from bs4 import BeautifulSoup

def one_page_code(user_in_city):

url = 'http://' + user_in_city + '.lianjia.com/ershoufang/pg{}/'

for a in range(1, 101):

url1 = url.format(a)

header = {'User-Agent': '*********'}

page = requests.get(url1, headers=header)

a=page.text

soup = BeautifulSoup(a,"lxml")

for b in soup.find_all('div',class_='info clears'):

for wz in b.find_all('div',class_='title'):

wz=wz.get_text()

for ad in b.find_all('div',class_='address'):

ad=ad.get_text()

for ys in b.find_all('div',class_='flood'):

ys=ys.get_text()

for sj in b.find_all('div',class_='followInfo'):

sj=sj.get_text()

for tag in b.find_all('div',class_='tag'):

tag=tag.get_text()

for jg in b.find_all('div',class_='priceInfo'):

jg=jg.get_text()

df=wz + ',' + ad + ',' + ys + ',' + sj + ',' + tag + ',' + jg

with open("链家-沈阳-二手房-over", "a", encoding='utf-8') as f:

f.write(df+'\n')

def main():

user_in_city = input('输入爬取城市:')

one_page_code( user_in_city)

if __name__ == '__main__':

main()

python爬虫requests源码链家_Python 爬虫 链家二手房(自行输入城市爬取)相关推荐

  1. php爬取房源,Python 爬虫 链家二手房(自行输入城市爬取)

    因同事想在沈阳买房,对比分析沈阳各区的房价,让我帮忙爬取一下链家网相关数据,然后打 算记下笔记 用于总结学到的东西&用到的东西. 一.爬虫需要会什么? 学习东西 首先你要知道它是干嘛的.爬虫 ...

  2. python爬虫requests源码链家_python数据分析实例:python抓取链家二手房源数据和分析...

    python语言,在数据分析方面,涵盖了"数据获取→数据处理→数据分析→数据可视化"这个流程中每个环节,不可不谓之为利器. 本篇文章我们就利用python语言在数据分析方面的应用, ...

  3. python爬虫requests源码链家_python爬虫——爬取链家房价信息(未完待续)

    爬取链家房价信息(未完待续) items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # ...

  4. python爬虫requests源码链家_Python爬虫系列-Xpath自如和bs4链家

    爬完魔方之后,再接再厉爬取自如和链家,然后...不出意外的又失败了!在向右老师和羽恒大神的拯救下,终于把我从坑里挖了出来.虽然错的也还有点稀里糊涂的,但前事不忘,后事之师.下面把遇到的坑简单说一下. ...

  5. python爬虫requests源码链家_python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  6. python爬虫requests源码链家_Python爬虫之---爬链家

    一个简单的实例,可以采用.做的demo. #!/usr/bin/python # -*- coding: utf-8 -*- # @Time : 2020/6/4 15:55 # @Author : ...

  7. python爬虫requests源码链家_链家房源爬虫(含源码)

    链家APP上有很多在售房源信息以及成交房源信息,如果可以把这些信息爬下来,可以得到很多有价值的信息.因此本文将讲一讲如何爬取这些数据,并保存下来供以后分析. 本文将介绍以下几个方面: 程序介绍该程序支 ...

  8. python获取网页源码不完整_python和Ajax在一起了?真的???

    Ajax动态网页加载爬取新浪微博某关键词下的信息 前言 有些时候我们使用浏览器查看页面正常显示的数据与使用requests抓取页面html得到的数据不一致,这是因为requests获取的是原始的HTM ...

  9. 爬虫-requests库(二)get请求参数的使用 —搜狗搜索后爬取搜索结果

    之前写过一个用urllib.request 爬取百度搜索后结果的小文章 百度搜索关键词后爬取搜索结果 这次用requests库实现下搜狗搜索后查询,代码 import requests from fa ...

最新文章

  1. Mybatis简单的入门之增删改查
  2. 通俗易懂:贪心算法(二):区间问题 (力扣435无重叠区间)
  3. 智源“高能对撞粒子分类挑战赛”开启,品鉴宇宙粒子的独特“味道”
  4. Angular2官网项目 (4)--路由
  5. unix查询内存使用率_Elasticsearch高级调优方法论之——根治慢查询
  6. 用java实现学生管理系统
  7. 一个很不错的开发管理中文个人网站
  8. Mysql得隔离级别
  9. Pytorch完成线性回归
  10. 管理感悟:图省事就是把别人当白痴
  11. 统计学习基础(ESL)中文版
  12. Git 小乌龟(TortoiseGit)的详细使用
  13. 摄影测量学习总结(较全面易懂)
  14. DfE给学生提供的笔记本电脑感染了恶意软件
  15. 3.2 腾讯云AI解决方案
  16. 让dropout在图像超分辨领域大放异彩![2022 CVPR]
  17. [益智]:找规律习题
  18. Java各种加密方式集锦(AES,DES,RSA,DSA,MD5,SHA)
  19. 计算机视觉岗实习面经
  20. 无线网卡驱动突然坏了怎么办

热门文章

  1. 西安一些老地名的来历
  2. 各种光学仪器成像技术(下)
  3. 11月20日科技资讯|微信成最频繁网络诈骗犯罪工具;库克再谈乔布斯;PyCharm 2019.2.5 发布
  4. 快应用底部导航栏的原生实现
  5. c语言数组字符比大小,C语言strncmp函数
  6. 幼儿园门禁,这3个安全隐患我居然才知道,速看!
  7. OpenLDAP 最详细的概念教程
  8. LayaBox上使用自定义WebAssembly初体验
  9. 让网页成为蜘蛛网-SEO优化总结
  10. Android NDK Address Sanitizer