爬虫:请求目标网站并获得数据的程序

爬虫的基本步骤:

使用python自带的urllib库请求百度:

import urllib.request

response = urllib.request.urlopen('http://www.baidu.com')
print(type(response)) #打印结果
<class 'http.client.HTTPResponse'>

可以从类型上看出来,response是一个HTTP响应

请求:

请求的方式以GET和POST最为常用,一般的GET方法将请求参数放在URL中。如在百度中搜索一个关键词,这就形成了以GET在URL中更改参数的方法。

而POST将参数放在表单内进行请求。如请求登陆百度,需要向百度服务器发送你的账号密码这些东西。

请求头是一个很重要的请求内容,在一般的浏览器请求中,网站会返回一个你的浏览器信息,如果在代码不伪装程浏览器的情况下,你的IP地址会迅速的被网站封掉,每个爬虫库的伪装方式都是不同的,如urllib库

import urllib.request

heads = {}
heads['User-Agent'] = 'Mozilla/5.0 ' \
'(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
'(KHTML, like Gecko) Version/5.1 Safari/534.50' req = urllib.request.Request(url=url, data=data, method='POST', headers=heads) response = urllib.request.urlopen(req)
print(response.getheaders()) #getheaders()方法将会返回给你一些请求信息,如时间,服务器信息等,包含user-agent

响应:

响应就是请求之后浏览器所呈现的东西,最重要的就是响应体,包含了网页的源文件

在代码的情况下查看响应状态:

import urllib.request

response = urllib.requset.urlopen('http://www.baidu.com')

print(response.getcode())

#返回200表示成功

解析方式:

当想要获得网页中某些元素应该怎样去解析?

解析的方式多种多样,目前还只是使用正则来做解析,听说xpath是最简单解析方式,不过我觉得每个库还是要使用一下试试的,看看哪个更适合你。

为什么有的网页请求源码和在浏览器中查看到的不一样?

这是因为动态网站使用了JS渲染,元素都是经过js动态加载出来的,所以想要获得源码还要去模拟浏览器的行为,像selenium驱动browser,PhantomJS等工具。

python爬虫基本原理及入门的更多相关文章

  1. 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)

    目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...

  2. Python爬虫的简单入门(一)

    Python爬虫的简单入门(一) 简介 这一系列教学是基于Python的爬虫教学在此之前请确保你的电脑已经成功安装了Python(本教程使用的是Python3).爬虫想要学的精通是有点难度的,尤其是遇 ...

  3. Python爬虫Scrapy框架入门(0)

    想学习爬虫,又想了解python语言,有个python高手推荐我看看scrapy. scrapy是一个python爬虫框架,据说很灵活,网上介绍该框架的信息很多,此处不再赘述.专心记录我自己遇到的问题 ...

  4. Python爬虫基础知识入门一

    一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网 ...

  5. Python爬虫基本原理

    爬虫基本原理 1. 什么是爬虫 请求网站并提取数据的自动化程序. 2. 爬虫基本流程 发起请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待 ...

  6. Python爬虫三年没入门,传授一下绝世神功,经理唏嘘不已!

    长期枯燥的生活,敲代码的时间三天两头往吸烟室跑,被项目经理抓去训话. "入门"是学习Python最重要的阶段,虽然这个过程也许会非常缓慢.当你心里有一个目标时,那么你学习起来就不会 ...

  7. 这个Python爬虫的简单入门及实用的实例,你会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:HOT_and_COOl 利用爬虫可以进行数据挖掘,比如可以爬取别人的网 ...

  8. Python爬虫零基础入门(系列)

    一.前言上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. update ...

  9. Python爬虫Scrapy框架入门(2)

    本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...

随机推荐

  1. Java String 函数常用操作 & format() 格式化输出,代码详解

    package _String_; import java.util.*; import java.math.*; import java.lang.*; public class _Strings ...

  2. java复制文件夹中的所有文件和文件夹到另一个文件夹中

    1.复制文件夹 public static void copyDir(String oldPath, String newPath) throws IOException { File file = ...

  3. 【selenium2】【unittest】

    #栗子 from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver ...

  4. 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1798 大概就是维护两个标记的线段树模板题. 设定优先级,先乘后加(只是相对的),$push ...

  5. Sqlserver中分页,2012后支持offset + fetch,2012之前用rownum嵌套查询

    今天发现原先用的sql offset fetch好用,换了一个DB就歇菜 歇菜截图 比较了一下,是数据库版本的问题 一个是13,一个是10 版本低的不支持用offset + fetch 进行分页,ms ...

  6. [osg][原]自定义osgGA漫游器

    相机矩阵变化基础:http://blog.csdn.net/popy007/article/details/5120158 osg漫游器原理:http://blog.csdn.net/csxiaosh ...

  7. OpenModelica Debug

    assertion只触发一次 The gdb process has not responded to a command within 40 second(s).This could mean it ...

  8. WSL(Windows Subsystem for Linux) 适用于Linux的Windows子系统

    打开 Microsoft Store , 搜索 Linux .选择 Ubuntu , 仔细看介绍,尤其是安装前的说明 ========================================= ...

  9. webpack初识

    1.什么是Webpack WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等) ...

  10. python3+虹软2.0 离线人脸识别 demo

    python3+虹软2.0的所有功能整合测试完成,并对虹软所有功能进行了封装,现提供demo主要功能,1.人脸识别2.人脸特征提取3.特征比对4.特征数据存储与比对其他特征没有添加 虹软SDK下载戳这 ...