理解爬虫原理

1.简单说明爬虫原理

爬虫就是通过互联网各个沾点组成的节点网,通过代码返回给浏览器,然后解析这部分的代内容,将网页内的内容简洁地呈现在我们的面前。爬虫的流程可以分为:发送请求、获取响应内容、解析内容、保存数据。

2.使用 requests 库抓取网站数据;

import requests
from bs4 import BeautifulSoup
url='http://site.gzcc.cn/html/2018/xkcg_0615/1729.html'
res = requests.get(url)
res.encoding = 'utf-8'
res.text

3.了解网页

写一个简单的html文件,包含多个标签,类,id

<html><head><h1 id="title">简单视频网页</h1></head><body><div><p1>腾讯视频网页<p1><br><a href="https://v.qq.com/?ptag=qqbsc" >腾讯视频</a></div></body>
</html>

4).使用 Beautiful Soup 解析网页;

通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree

select(选择器)定位数据

找出含有特定标签的html元素

import requests
from bs4 import BeautifulSoup
url='http://site.gzcc.cn/html/2018/xkcg_0615/1729.html'
res = requests.get(url)
res.encoding = 'utf-8'
res.textyuansu = soup.select('li')
yuansu

找出含有特定类名的html元素

 

tedinglei = soup.select('.news-list-title')
tedinglei

找出具有特定id名的html元素

id = soup.select('#q')
id

 

3.提取一篇校园新闻的标题、发布时间、发布单位

url = 'http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'

import requests
from bs4 import BeautifulSoupurl="http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html";
res=requests.get(url);
res.encoding=res.apparent_encoding;
text=res.text;soup=BeautifulSoup(text,"html.parser");title=soup.select(".show-title");
print(title);time=soup.select(".show-info");
print(time);

 

 

 

 

 

转载于:https://www.cnblogs.com/lb2016/p/10598314.html

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

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

相关文章

带有Java DSL的Spring Integration MongoDB适配器

1引言 这篇文章解释了如何使用Spring Integration从MongoDB数据库中保存和检索实体。 为了实现这一点&#xff0c;我们将使用Java DSL配置扩展来配置入站和出站MongoDB通道适配器。 例如&#xff0c;我们将构建一个应用程序&#xff0c;使您可以将订单写入MongoDB存储&#xff…

matlab linspace

用法&#xff1a;linspace(x1,x2,N)   功能&#xff1a;linspace是Matlab中的一个指令&#xff0c;用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。若缺省N&#xff0c;默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspac…

Linux strace命令

简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界&#xff0c;进程不能直接访问硬件设备&#xff0c;当进程需要访问硬件设备(比如读取磁盘文件&#xff0c;接收网络数据等等)时&#xff0c;必须由用户态模式切换至内核态模式&#xff0c;通 过系统调用…

网站发布

1.文件发布 右击工程&#xff0c;选择发布 发布方法选择文件发布&#xff0c;打开你的程式路径&#xff0c;然后一步步操作即可。 转载于:https://www.cnblogs.com/alannxu/p/10613453.html

什么是javax.ws.rs.core.context? [第4部分]

如何使用Context批注 在什么是javax.ws.rs.core.context的第3部分中&#xff1f; 您学习了如何在请求和配置&#xff0c;提供程序和应用程序实例中使用Context批注。 在本文中&#xff0c;您将学习如何使用Context批注注入HttpServletResponse和HttpServletRequest类。 获取对…

matlab im2double

im2double函数&#xff0c;如果输入是 uint8 unit16 或者是二值的logical类型&#xff0c;则函数im2double 将其值归一化到0&#xff5e;1之间。

重学前端(一)

前端知识框架&#xff1a;自己觉得很不错的一个前端知识框架 转载于:https://www.cnblogs.com/angel1254/p/10616065.html

couchbase_Couchbase:使用Twitter和Java创建大型数据集

couchbase在播放/演示Couchbase或任何其他NoSQL引擎时&#xff0c;创建大型数据集的一种简单方法是将Twitter feed注入数据库。 对于这个小应用程序&#xff0c;我正在使用&#xff1a; Couchbase Server 2.0服务器 Couchbase Java SDK &#xff08;将由Maven安装&#xff0…

C编译器、链接器、加载器详解

一、概述 C语言的编译链接过程要把我们编写的一个c程序&#xff08;源代码&#xff09;转换成可以在硬件上运行的程序&#xff08;可执行代码&#xff09;&#xff0c;需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作…

matlab bwdist

bwdist函数用于计算元素之间的距离。 举个例子&#xff1a; 如果a 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 那么&#xff1a; [D,L]bwdist(a); D 1.4142 1.0000 1.0000 1.0000 1.4142 1.0000 0 0 0 1.0000 1.0000 0 0 0 1.0000 1.0000 0 0 0 1.0000 1.4142 1.000…

js函数库-D3

推荐&#xff1a; https://www.cnblogs.com/createGod/p/6884629.html转载于:https://www.cnblogs.com/john-hwd/p/10616166.html

配置Ubuntu Server高速apt-get源

今天刚装上Ubuntu Server 12&#xff0c;默认的apt-get源比较慢。更改一下源地址。 方法&#xff1a; 1、修改源地址&#xff1a; cp /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list 加入如下内容&#xff08;中科大的&#xff09;&#xff1a; …

matlab find

find函数用于返回所需要元素的所在位置 (位置的判定&#xff1a;在矩阵中&#xff0c;第一列开始&#xff0c;自上而下&#xff0c;依次为1&#xff0c;2&#xff0c;3...,然后再从第二列&#xff0c;第三列依次往后数)find&#xff08;A&#xff09;返回矩阵A中非零元素所在位…

红黑树操作详解——很形象的过程

红黑树是一种很好的自平衡二叉排序树&#xff0c;在此&#xff0c;给出一个网友给出的红黑树操作详解&#xff1a; https://segmentfault.com/a/1190000012728513 里面给出了红黑树的详细操作&#xff0c;过程很形象&#xff01;&#xff01;&#xff01; 结合可视化数据结构网…

地图事件触发_使用地图触发功能处理相干事件

地图事件触发本文介绍如何通过使用映射触发器来处理一致性事件。 基本上&#xff0c;建议使用Oracle Coherence中的分布式数据管理来研究Oracle Coherence API的基本配置和实现。 映射触发器是Oracle Coherence提供最高度定制的缓存管理系统的最重要功能之一。 MapTrigger表示…

C++ 内存对齐

注&#xff1a;本文代码测试环境为win7 X64 cpu, 编译器为gcc4.7.1 和 vs2010 内存对齐是编译器为了便于CPU快速访问而采用的一项技术 我们先从一个例子开始&#xff0c;对下面的类(或者结构体) class node { char c; int i; short s; }no; sizeof(no)的值是多少呢&#xff0c;…

matlab sub2ind与ind2sub

sub2ind与ind2sub函数 A [1 2 3; 4 5 6;7,8,9]; >> fsub2ind(size(A), 2, 3) f 8 即把矩阵A中第二行第三列的元素的全下标标识&#xff08;2,3&#xff09;转换为对应的单下标标识8&#xff0c;即该元素从第一列顺次数过去是第八号元素。 而ind2sub则用于把矩阵中…

Spring Boot和Angular 2入门食谱

我主要是一名服务开发人员&#xff0c;必须不时创建一些可传递的UI。 我精通基于AngularJS1的基本UI&#xff0c;并且可以使用之前概述的方法来完成工作。 遗憾的是&#xff0c;随着Angular 2的出现&#xff0c;我不得不将以前的方法抛诸脑后&#xff0c;而现在使用Spring Boot…

Robbers' watch CodeForces - 685A (暴力)

大意: 一天n小时, m分钟, 表以7进制显示, 求表显示数字不同的方案数 注意到小时和分钟部分总长不超过7, 可以直接暴力枚举. 关键要特判0, 0的位数要当做1来处理 #include <iostream> #include <algorithm> #include <cstdio> #include <math.h> #inclu…

什么是javax.ws.rs.core.context? [第5部分]

如何使用Context批注 在什么是javax.ws.rs.core.context的第4部分中&#xff1f; 您学习了如何使用Context批注将HttpServletResponse和HttpServletRequest类注入资源方法。 在本文中&#xff0c;您将学习如何使用其余两个仅在servlet容器中可用的类&#xff0c;它们是&#x…