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

爬虫的基本步骤:

使用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. 【转载】EclEmma工具介绍

    https://wenku.baidu.com/view/1017567e5acfa1c7aa00cc5f.html https://www.ibm.com/developerworks/cn/rat ...

  2. 【译】第40节---EF6-命令监听

    原文:http://www.entityframeworktutorial.net/entityframework6/database-command-interception.aspx 本节,将学习 ...

  3. jquery 重要知识点总结

    jquery 重要知识点总结1.一组标签用一个ul来管理,每一个标签是ul中的一个li:标签下面的内容就是用div来管理2.跟在浮动元素(float)之后的元素会围绕着浮动元素,如果不希望有这种围绕, ...

  4. Python学习 day01打卡

    1.Python : 是一门解释型 弱类型 高级开发编程语言. 2.第一个Python程序的编写: print ("hell,world") 3.变量:把程序运行过程中的值储存起来 ...

  5. JMeter 生成CSV文件中文变乱码的问题

    在通过BeanShell 生成CSV文件时,写入的中文字符默认情况会变成乱码. //默认情况生成的文件是asii编码.fileName = “c:\test.csv";fos = new F ...

  6. docker 日志分析

    日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...

  7. onpause 与 onresume

  8. ubuntu 安装pip3 遇到Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS错误

    3.5版本之后的会自动安装pip,所以我们直接从官网下载3.5.2,下载地址:https://www.python.org/ftp/python/ 下载以后,可以用命令解压,也可以右键进行解压, ta ...

  9. scala中option、None、some对象

    转载:http://www.jianshu.com/p/95896d06a94d 1.option类型避免对象是空值,造成空指针异常. 2.None对象表示null,在没有对象返回时使用,some在有 ...

  10. 《剑指offer》第六十八题(树中两个结点的最低公共祖先)

    // 面试题68:树中两个结点的最低公共祖先 // 题目:输入两个树结点,求它们的最低公共祖先. #include <iostream> #include "Tree.h&quo ...