IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 云学python (第5章对象带你飞之爬虫)《vamei-从Python开始学编程》 笔记 -> 正文阅读

[Python知识库]云学python (第5章对象带你飞之爬虫)《vamei-从Python开始学编程》 笔记

5.5写一个爬虫

(这一章我失败了,暂时放弃一下)

一个网络爬虫能自动浏览网页,并从网页上抓取我们想要的信息。网络爬虫应用很广,很多搜索引擎都是用爬虫抓取并分析网页信息,从而让不同的网页对应不同的搜索关键字。许多研究互联网行为的学者也会用爬虫抓取网络信息,用来进一步分析人们使用互联网的行为。还有一些下载网络视频或图片的软件,也是基于爬虫来完成主要工作的。很多时候,爬虫可以非常复杂,运行起来也相当耗时。?这里用爬虫做一件简单的事,即让它访问笔者的博客首页,提取出最近文章的发表日期和阅读量。

第一步当然是访问博客首页,获得首页的内容。根据5.4节的内容,?这非常简单。笔者的博客的地址是,www.cnblogs.com/vamei主机地址是?www.cnblogs.com,资源位置是/vameio这个页面是一个超文本文件,所?以我们用HTTP协议访问:

import?http.client

conn = http. client.HTTPConnection("www. cnblogs. com") #?主机地址

conn??request("GET",?"/vamei")

#请求方法和资源路径

#获得回复

response

=conn.getresponse()

content =

response.read()

#回复的主体内容

content =

content.splitC'XrXn")

#分割成行

这里的content是列表,列表的每个元素是超文本的一行。对于我们所关心的信息来说,它们存在的行看起来是下面的样子:

<div class="postDesc">posted?@?2014-08-12?20:55?Vamei?阅读(6221)评论(11)?<a href ="博客后台 - 博客园" rel= "nofollow">?编辑?</ax/div>

我们想要的信息,如2014-08-12 20:55,以及阅读量6221镶嵌在一串?文字中。要想提取出类似这样的信息,我们很自然地想到了?5.3节的正则表达式:

import re pattern?=?"posted @ (\d{4}-[0-l]\d-(0-3}\d [0-2]\d: [0-6]\d) Vamei?阅读?\((\d+)\)评论”

for line in content:

m = re.search(patternline)

if m != None:

print(m.group(l)m.group(2))

把两段程序合在一起,将打印出如下结果:

2016-03-23

14:08

9622

2016-03-23

07:12

1787

2016-03-22

11:20

1161

2015-05-11

13:08

5864

2014-10-01

12:50

5584

2014-09-01 05:41 9073

2014-08-20

10:48

6971

2014-08-16

11:51

5682

2014-08-13

22:43

7119

2014-08-12

20:55

6221

根据本章的内容,你还可以把日期转换成日期对象,进行更复杂的?操作,如查询文章是星期几发表的。你还可以把上面的内容写入文件,长久的保存起来。可以看到,这个简单的程序中包含了不同方面的知识内容。

#我失败的代码:

import http.client

conn = http.client.HTTPConnection("www.twosetapparel.com")
conn.request("GET","/collections/shop-all/products/twoset-practice-sweater-vest")
response = conn.getresponse()

content = response.read()
content = content.split("\r\n")
#主要是这一行的问题:TypeError: a bytes-like object is required, not 'str'

print(str(content))


import re

pattern = "posted @ (\d{4}-[0-1]\d-{0-3}\d [0-2]\d:[0-6]\d) Vamei 阅读\((\d+)\)评论"
for line in content:
    m = re.search(pattern,line)
    if m !=None:
        print(m.group(1),m.group(2))

????????

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:48:54  更:2022-04-28 11:50:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:30:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码