Python爬虫学习之获取网页源码
偶然的机会,在知乎上看到一个有关爬虫的话题<利用爬虫技术能做到哪些很酷很有趣很有用的事情?>,因为强烈的好奇心和觉得会写爬虫是一件高大上的事情,所以就对爬虫产生了兴趣。
关于网络爬虫的定义就不多说了,不知道的请自行点击查看 =>百度百科 网络爬虫,维基百科 网络爬虫
有很多编程语言都可以编写网络爬虫,只不过各有各的优缺点,这里我选择用Python语言编写爬虫,因为Python是一门非常适合用来编写爬虫的语言,用它实现爬虫的代码量相对其他语言要少很多,并且python语言对网络编程这类模块的封装特别的好,它的语言特点使得很多程序员愿意用其编写程序。为了学习爬虫,我接触了Python这门语言,并且在不断深入学习中,把它于爬虫相结合起来,以便于实现爬虫。我学习并且使用的版本是 Python3.
学习网络爬虫需要先了解一些基础知识:
- HTML 用于了解整个网页的构成,方便从网页中爬取需要的东西
- HTTP 协议,用于了解网址的构成,以便于解析URL
- Python 用于编写相关的程序以实现爬虫
我所学到的第一个爬虫程序就是爬取网页的源码。不要以为获取网页源码是一个非常小而简单的程序,它是爬虫的基础,至关重要。下面是我自己理解并实现的代码,若有不对的地方请指出,以便学习改进。
# -*- coding:utf-8 -*- #设置编码类型为utf-8 import requests #导入相关的请求模块 url = 'http://www.jianshu.com/' #要获取的网页网址(简书首页) response = requests.get(url) #通过requests中的get()获取网页连接的状态码 content = response.text #通过text从返回的状态码中获取网页的信息 print(content) #把源码输出到控制台
Python爬虫学习之获取网页源码的更多相关文章
- Python: PySide(Qt)异步获取网页源码
学习PyQt UI编程笔记.相对PyQt来说,PySide资料为少. 此篇记录异步获取代码后,同步显示于界面窗体中,涉及线程网步,此为知识点. 直录代码: # encoding: utf-8 from ...
- C语言之socket获取网页源码
写爬虫也许你用的是python,类似urlopen(url).read()即可获得普通的网页的源码,或者用的java的网络库加上流操作,或者其他高级语言.但你有没有想过使用C语言来实现呢?我曾经以为用 ...
- QT:轻松获取网页源码
获取网页源码的小例子,代码很简单,就不多作解释了. 不过一定要注意网页的编码问题,否则会出现乱码的!!! #include <QtCore> #include <QtNetwork& ...
- vc++获取网页源码
1. 获取网页源码的步骤: com组件的初始化 创建WinHttpRequest对象 创建并实例化WinHttpRequest组件 调用Open方法打开连接 调用Send方法发送请求 使用Respon ...
- vc++获取网页源码之使用import+接口方式
1.使用IWinHttpRequest获取网页源码 首先要创建基于对话框的mfc应用程序 2.import+接口方式 首先导入winhttp.dll,使用IWinHttpRequest接口 #impo ...
- 高效获取网页源码COM
目前获取网页源码有几种方法: 1.WebClient下载页面2.HttpWebRequest发请求获取3.com组件xmlhttp获取 三者比较:WebClient代码最少,效率最慢:xmlhttp代 ...
- Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
Python3 Selenium WebDriver网页的前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 通过selenium webdr ...
- Python3.x获取网页源码
Python3.x获取网页源码 1,获取网页的头部信息以确定网页的编码方式: import urllib.request res = urllib.request.urlopen('http://ww ...
- c# HttpClient获取网页源码
#region 获取网页源码 public static string HttpClientGetHtmls(string url) { try { var client = new HttpClie ...
随机推荐
- iOS开发寻找最近公共view
新技能 #pragma mark --寻找最近公共view + (NSArray *)superViews:(UIView *)view{ if (view==nil) { return @[]; } ...
- Java--JDBC连接数据库
我们知道Java中的jdbc是用来连接应用程序和数据系统的,本篇文章主要就来看看关于JDBC的实现和使用细节.主要包含以下几点内容: JDBC的基本知识(数据驱动程序) JDBC的连接配置 ...
- webdriver介绍&与Selenium RC的比较
什么是webdriver? webdriver是一个web自动化测试框架,不同于selenium IDE只能运行在firefox上,webdriver能够在不同的浏览器上执行你的web测试用例.其支持 ...
- Mongodb Geo2d索引原理
作者:孔德雨 MongoDB的geo索引是其一大特色,本文从原理层面讲述geo索引中的2d索引的实现. 2d 索引的创建与使用 通过 db.coll.createIndex({"lag&qu ...
- mysql 分析2 show processlist ;
show processlist ; 可以查看当前有哪些链接 处于什么状态 分析语句 那些连接处于什么状态 (需要通过脚本观察一段时间内的有运行情况做出统计一直刷新服务器运行状态 ) 当出现下面的几种 ...
- C#中的DateTime是值类型还是引用类型
近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自Syste.Val ...
- 使用HTTP的同步方式还是异步方式?
同步与异步 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完 ...
- mvc 筛选器
之前公司中,运用ActionFilterAttribute特性实现用户登录信息的验证,没事看了看,留下点东西备忘. 好的,瞅这玩意一眼就大概能猜到这货是干嘛的了吧,没错,action过滤器.其实就是A ...
- java线程控制安全
synchronized() 在线程运行的时候,有时会出现线程安全问题例如:买票程序,有可能会出现不同窗口买同一张编号的票 运行如下代码: public class runable implement ...
- 详解 Node + Redux + MongoDB 实现 Todolist
前言 为什么要使用 Redux? 组件化的开发思想解放了繁琐低效的 DOM 操作,以 React 来说,一切皆为状态,通过状态可以控制视图的变化,然后随着应用项目的规模的不断扩大和应用功能的不断丰富, ...