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

一个简单的实例,可以采用。做的demo。

#!/usr/bin/python

# -*- coding: utf-8 -*-

# @Time : 2020/6/4 15:55

# @Author : Xuegod Teacher For

# @File : 01_get_price_test.py

# @Software: PyCharm

'''

第一步:下载所有的html

第二步:利用xpath爬取匹配

第三步:保存到mongodb数据库中

'''

import requests #pip install requests

from lxml import etree # pip install lxml

#模拟浏览器的版本信息,python 脚本 模拟浏览器

#pip install fake-useragent

from fake_useragent import UserAgent

import pymongo #pip install

IP = '127.0.0.1'

PORT = 27017

Name = 'sun'

client = pymongo.MongoClient(IP,PORT)

db = client.sun

collection = db.lanjia

#模拟浏览器的头部信息

headers = {

"User-Agent":UserAgent().random

}

base_url = 'https://bj.lianjia.com/ershoufang/pg{}/'

#todo:下载整个网页的html

def load_page(url):

'''

:param url: 页面的url地址

:return: HTML界面

'''

try:

response = requests.get(url,headers=headers)

if response.status_code == 200:

print('页面响应成功')

#返回整体的html文本str类型

return response.text

except:

print('网络请求错误')

#todo:提取我想要的数据

def parse_html(html):

'''

:param html: 整体的html界面

:return: 数据。title和price

'''

#把具体的str类型的文本办成xpath可匹配的文本

xpath_content = etree.HTML(html)

#一个界面中的30条数据list

xpath_datas = xpath_content.xpath('//*[@class="info clear"]')

for data in xpath_datas:

try:

title = data.xpath('./div[1]/a/text()')

price = data.xpath('./div[6]/div/span/text()')

#list 是可以相加的python是强类型语言

#【titl,价格,每平方价格】

data = title + price

insert_mongo(data)

except:

#停止本次循环开始下次循环

continue

def insert_mongo(data):

collection.insert_one({

'name':data[0],

'price':data[1]+'万'

})

#多个页面数据下载

def main():

for i in range(1,10):

url = base_url.format(i)

html = load_page(url)

parse_html(html)

if __name__ == '__main__':

main()

有疑问可以进行评论~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例

使用SWRevealViewController实现侧边菜单功能详解 下面通过两种方法详解SWRevealViewController实现侧边菜单功能: 1.使用StoryBoard实现 2.纯代码实现 前言:手机屏幕始终有限,如何在有限的展示空间提供便捷的导航入口呢?Facebook…

计算机网络基础大学教材,《计算机网络技术及应用——大学计算机基础教育规划教材》低价购书_教材教辅考试_孔网...

本书在介绍数据通信概念的基础上,分局域网、广域网和因特网三个模块详细讲述了计算机网络的基础知识,还介绍了网络安全和网络管理方面的实用技术。本书的内容是兼顾基础,突出应用。本书取材新颖,概念清晰,可作为理工科…

绘图的尺寸_Auto CAD机械绘图尺寸标注教程1(尺寸标注简介)

1、尺寸是工程图中不可缺少的一项内容,工程图中的图形只用来标识工程图形的形状,而工程形体的大小尺寸是靠尺寸来说明的,所以工程图图中尺寸必须标注得正确、完整、清晰、合理。工程图中尺寸标注包括:尺寸界线、尺寸线、尺寸起止符…

java并发核心知识体系精讲_Java 面试突击之 Java 并发知识基础 amp; 进阶考点全解析

版权说明:本文内容根据 github 开源项目整理所得项目地址:https://github.com/Snailclimb/JavaGuide​github.com一、基础什么是线程和进程?何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统…

计算机专业 毕业论文 百度云,计算机专业毕业论文.pdf

XXXX 学院本科生毕业论文基于 VB 的人力资源管理信息系统的设计与实现院别 、专业 计算机科学与信息技术学院计算机科学与技术专业研 究 方 向 网络工程学 生 姓 名学 号指导教师姓名指导教师职称 讲 师20XX年 X 月 X 日大庆师范学院本科毕业论文 (设计 )摘 要为了提高人力资源…

python在linux中输出带颜色的文字的方法

在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息…

运用python的方式_对Python使用mfcc的两种方式详解

1、Librosa import librosa filepath "/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav" y,sr librosa.load(filepath) mfcc librosa.feature.mfcc( y,sr,n_mfcc13 ) 返回结构为(13,None)的np.Array,None表示任意数量 2、python_speech_features…

nginx加载图片慢_优化vue项目的首屏加载速度

最近使用vue-cli3构建了一个小型的博客系统,完工之后,build打包出来发现一个chunk-vendors包就有1.1m,部署上去之后,访问的时候,首屏加载非常慢。居然需要21s,体验极差。这是打包的结果截图根据这种情况&am…

Python.with.context-manager

Context Manager 1. Context Manager简介 "Context managers are a way of allocating and releasing some sort of resource exactly where you need it." Ref[4] 例如: 1 with file("/tmp/foo", "w") as foo: 2 print >> foo, &qu…

micropython移植教程_【教程】智能编程T-Watch手表初试micropython之电子秤教程

原标题:【教程】智能编程T-Watch手表初试micropython之电子秤教程 【项目的故事】 在极客玩具中,我一直喜欢穿戴类和小车类。前后做过两只运动心率表,并且参与过麦步手表的测试。TTGO最新出品了一块叫做T-Watch的手表,实际上&…

音乐和计算机跨界融合,音乐类综艺跨界融合有了新思路

图集8月9日《人民日报》刊文,对原创综艺节目《幻乐之城》匠心做原创的新思路、新经验、新趋势进行了表扬,文章指出:“音乐电影”的节目模式在呈现出音乐与电影双重质感的同时,也为国内音乐类综艺节目的跨界融合发展提供了新的思路…

mysql 下载到其他盘中_MYSQL 如果把数据文件保存到其他磁盘里

今天在CSDN上有人问起分开存储数据文件的问题。现在写下来。为了突破磁盘搜索的瓶颈。我们要把MYSQL的数据和索引保存到其他不同的磁盘中。目前还只是支持MyISAM引擎。在MYSQL中,官这个叫象征性链接。1、在WINDOWS下的象征性链接。数据库目录:E:/LAMP/my…

python定义了函数却显示未定义_python

我正在编写一个脚本,在我的脚本中,我具有以下功能: def insert_image(cursor, object_id, sku): product_obj core.Object.get(object_id) string_sku str(sku) folder string_sku[0] string_sku[1] string_sku[2] found_url False # K…

以下不属于计算机安全术语,基础知识(D).doc

1、计算机硬件是指组成计算机的任何机械的、磁性的、电子的装置或部件,其中微型计算机的主要组成部分有:A.CPU、存储器、基本输入输出设备和其他外围设备B.硬件系统和软件系统C.主机和系统软件D.主机和显示器答案:A (2)2、计算机网络的分类标…

java api项目配置统一的错误返回json提示

2019独角兽企业重金招聘Python工程师标准>>> 项目使用的json解析框架是fastjson自定义的返回对象如下:package com.test;public class ResultObj {private boolean result;private int code200;private String msg;private Object data;private PagerRes…

mysql没多久自动断开服务_mysql 长时间没连接了 就会自动断开服务

这是因为mysql 长时间没连接了 就会自动断开服务。 解决办法 1、首先,下载必须的jar包 dbcp 包,目前版本是1.2.1:http://jakarta.apache.org/commons/ dbcp / pool包,目前版本是1.3:http://jakarta.apache.org/commons…

python将print内容输入txt_Python将矩阵写入txt文件,保持格式

我正在努力把我的代码输出写入一个txt文件,同时保持格式。代码如下:import os # Compute matrix titles [Filename, Date] matrix [titles] for directory, __, files in os.walk(MY_DIRECTORY): # replace with actual directory path for filename i…

浙江大学计算机学院研究生论文盲审,浙江理工大学研究生学位论文盲审实施办法...

浙理工研〔2014〕11号为进一步完善研究生教育质量监控体系,提高研究生培养质量,根据学校实际,特修订本办法。一、工作原则研究生学位论文盲审工作在校硕士和博士学位评定委员会领导下开展,由研究生部(校学位办)和学院组织实施。除…

iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

一、基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉。 在storyboard中,默认的控制器是View Controller,而我们需要的是导航控制器,那么就把系统的给删掉,拖一个导…

mysql 5.5 1366错误_laravel5.3 在 mysql5.1中运行出错 error: 1366 Incorrect integer

Laravel 在 MySQL5.1 下运行出错 ,错误如下:SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 1 for column status at row 1 (SQL: insert into cases (case_name, status, updated_at, created_at) values (fdsafdsadsa, 1, 1474504956…