用python写爬虫简单吗

所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息。

下面是一个简单的爬虫程序

http基本知识

当我们通过浏览器访问指定的URL时,需要遵守http协议。本节将介绍一些关于http的基础知识。

http基本流程

我们打开一个网页的过程,就是一次http请求的过程。这个过程中,我们自己的主机充当着客户机的作用,而充当客户端的是浏览器。我们输入的URL对应着网络中某台服务器上面的资源,服务器接收到客户端发出的http请求之后,会给客户端一个响应,响应的内容就是请求的URL对应的内容,当客户端接收到服务器的响应时,我们就可以在浏览器上看见请求的信息了。

我们可以通过python的requests模块很方便的发起http请求。requests模块是第三方模块,安装完成之后直接import就能使用。下面介绍一些简单的用法

发起请求

import requests
# 请求的首部信息
headers = {
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
  Chrome/65.0.3325.146 Safari/537.36'
}
# 例子的url
url = 'https://voice.hupu.com/nba' # 虎扑nba新闻
# 利用requests对象的get方法,对指定的url发起请求
# 该方法会返回一个Response对象
res = requests.get(url, headers=headers)
# 通过Response对象的text方法获取网页的文本信息
print(res.text)

上面的代码中,我们向虎扑的服务器发送了一个get请求,获取虎扑首页的nba新闻。headers参数指的是http请求的首部信息,我们请求的url对应的资源是虎扑nba新闻的首页。获取到对应的网页资源之后,我们需要对其中的信息进行提取。

通过BeautifulSoup提取网页信息

BeautifulSoup库提供了很多解析html的方法,可以帮助我们很方便地提取我们需要的内容。我们这里说的BeautifulSoup指的是bs4。当我们成功抓取网页之后,就可以通过BeautifulSoup对象对网页内容进行解析。在BeautifulSoup中,我们最常用的方法就是find()方法和find_all()方法,借助于这两个方法,可以轻松地获取到我们需要的标签或者标签组。关于其他的方法,可以参考bs4的官方文档:BeautifulSoup

find()方法和find_all()方法的用法如下

find(name , attrs , recursive , string , **kwargs )
# find_all()方法将返回文档中符合条件的所有tag,
find_all(name , attrs , recursive , string , **kwargs )
from bs4 import BeautifulSoup
# BeautifulSoup对象接收html文档字符串
# lxml是html解析器
soup = Beautiful(res.text, 'lxml')
# 下面的方法找出了所有class为hello的span标签
# 并将所有的结果都放入一个list返回
tags = soup.find_all('span', {'class': 'hello'})

实例扩展:

实例一:

#第一种方法
import urllib2 #将urllib2库引用进来
response=urllib2.urlopen("http://www.baidu.com") #调用库中的方法,将请求回应封装到response对象中
html=response.read() #调用response对象的read()方法,将回应字符串赋给hhtml变量
print html #打印出来

实例二:

#第二中方法
import urllib2
req=urllib2.Request("http://ww.baidu.com")
response=urllib2.urlopen(req)
html = response.read()
print html

到此这篇关于用python写爬虫简单吗的文章就介绍到这了,更多相关python写爬虫难吗内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫用mongodb的理由

    python爬虫用mongodb的原因: 1.文档结构的存储方式 简单讲就是可以直接存json,list 2.不要事先定义"表",随时可以创建 3."表"中的数据长度可以不一样 也就是第一条记录有10个值,第二条记录不要规定也要10个值 对爬虫这种很乱的数据来说,很适用 . 内容扩展: mongoDB介绍: 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: *面向集合存储,易存储对象类型的数据. *模式自由. *支持动态查询. *支持完全索引,包

  • Python3爬虫带上cookie的实例代码

    Cookie的英文原意是"点心",它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的"点心".服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)特别有用. 当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息. 下面我们就来

  • python爬虫数据保存到mongoDB的实例方法

    爬虫数据保存到mongoDB的方法: import pymongo # 首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选 def save_mongo(传入的数据): # 创建连接 因为使用的为本机数据库,所以IP写localhost即可,端口号为27017 client = pymongo.MongoClient('localhost',27017) # 连接数据库(这里注意一点,mongo数据库有一个优点,就是当自己连接的数据库和表都没有的

  • Python爬虫抓取指定网页图片代码实例

    想要爬取指定网页中的图片主要需要以下三个步骤: (1)指定网站链接,抓取该网站的源代码(如果使用google浏览器就是按下鼠标右键 -> Inspect-> Elements 中的 html 内容) (2)根据你要抓取的内容设置正则表达式以匹配要抓取的内容 (3)设置循环列表,重复抓取和保存内容 以下介绍了两种方法实现抓取指定网页中图片 (1)方法一:使用正则表达式过滤抓到的 html 内容字符串 # 第一个简单的爬取图片的程序 import urllib.request # python自带

  • python爬虫要用到的库总结

    python爬虫要用到的库: 请求库:实现 HTTP 请求操作 urllib:一系列用于操作URL的功能. requests:基于 urllib 编写的,阻塞式 HTTP 请求库,发出一个请求,一直等待服务器响应后,程序才能进行下一步处理. selenium:自动化测试工具.一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码. aiohttp:基于 asyncio 实现的 HTTP 框架.异步操作借助于 async/await 关键字,使用异步库进行数据抓

  • python爬虫请求头设置代码

    一.requests设置请求头: import requests url="http://www.targetweb.com" headers={ 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Cache-Control':'max-age=0', 'Connection':'keep-alive', 'Referer':'http://www.baidu.

  • 用python写爬虫简单吗

    所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息. 下面是一个简单的爬虫程序 http基本知识 当我们通过浏览器访问指定的URL时,需要遵守http协议.本节将介绍一些关于http的基础知识. http基本流程 我们打开一个网页的过程,就是一次http请求的过程.这个过程中,我们自己的主机充当着客户机的作用,而充当客户端的是浏览器.我们输入的URL对应着网络中某台服务器上面的资源,服务器接收到客户端发

  • 如何用Python写一个简单的通讯录

    目录 用Python写一个简单的通讯录 一.构思 1.定义空列表和一个空字典来存储 2.定义功能选项 3.添加通讯录功能 3.2 删除学员功能 二.整体项目演示 用Python写一个简单的通讯录 一.构思 1.定义空列表和一个空字典来存储 list1=[] #用于储存字典中的信息 dict1={} #用于储存联系人信息 2.定义功能选项 def Menu(): print('请选择功能--------\n' '1.添加学员\n' '2.删除学员\n' '3.修改学员\n' '4.查询学员\n'

  • Python写一个简单上课点名系统(附源码)

    目录 一.准备工作 1.Tkinter 2.PIL 二.预览 1.启动 2.开始点名-顺序点名 3.开始点名-随机点名 4.手动加载人名单 5.开始点名-顺序点名-Pyqt5版本 三.思路 1.整体实现思路 2.点名实现思路 四.源代码 五.总结 一.准备工作 1.Tkinter Tkinter 是 python 内置的 TK GUI 工具集.TK 是 Tcl 语言的原生 GUI 库.作为 python 的图形设计工具,它所使用的 Tcl 语言环境已经完全嵌入到了 python 解释器中. 我们

  • Python写一个简单的在线编辑器

    直接奔入主题看下面pywebio程序,实现了Python的简陋在线编辑器 from pywebio.input import * from pywebio.output import put_text from os import system,remove try:     code = textarea('Code Edit Online', code={'mode': "python",'theme': 'darcula'}, value='# input your code h

  • 如何用python写一个简单的词法分析器

    编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行预处理,把注释,多余的空格,空行去掉. 2.一行一行扫描,行里逐字扫描,把界符和运算符当做分割符,遇到就先停下开始判断. 若是以 英文字母.$.下划线开头,则可能是变量和关键字,在判断是关键字还是变量. 若是数字开头,则判断下一位是不是也是数字,直到遇到非数字停止,在把数字取出来. 再来判断分割符是

  • Python多线程爬虫简单示例

    python是支持多线程的,主要是通过thread和threading这两个模块来实现的.thread模块是比较底层的模块,threading模块是对thread做了一些包装的,可以更加方便的使用. 虽然python的多线程受GIL限制,并不是真正的多线程,但是对于I/O密集型计算还是能明显提高效率,比如说爬虫. 下面用一个实例来验证多线程的效率.代码只涉及页面获取,并没有解析出来. # -*-coding:utf-8 -*- import urllib2, time import thread

  • 为什么说python适合写爬虫

    抓取网页本身的接口 相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API.(当然ruby也是很好的选择) 此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的.这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆.模拟session/cookie的存储和设置.在python里都有非常优秀的第三方包帮你搞

  • 深入理解Python分布式爬虫原理

    首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作者,摘要,正文等信息 (3)存储到硬盘中 上面的三个过程,映射到技术层面上,其实就是:网络请求,抓取结构化数据,数据存储. 我们使用Python写一个简单的程序,实现上面的简单抓取功能. #!/usr/bin/python #-*- coding: utf-8 -*- ''''' Created on 2014-03-16 @author: Kris '

  • python网络爬虫实现个性化音乐播放器示例解析

    目录 前言 开发组件 功能 流程分析 基于python的个性化音乐下载器模块详细 (一)前端模块 (二)后端模块 前言 当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们. 开发组件 python3.5 以上版本就行tkinter (python 自带的用于图形用户界面开发的模块)requests(爬虫模块)Chrome 浏览器等等 功能 音乐下载器功能: (1).用户输入想要下载的歌曲或关键字名称 (2).程序获取用户所输

  • 选择Python写网络爬虫的优势和理由

    什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件 爬虫有什么用? 做为通用搜索引擎网页收集器.(google,baidu) 做垂直搜索引擎. 科学研究:在线人类行为,在线社群演化,人类动力学研究,计量社会学,复杂网络,数据挖掘,等领域的实证研究都需要大量数据,网络爬虫是收集相关数据的利器.

随机推荐