python 学习爬虫教程~
思路::
(本文没有用xpath定位,xpath需要导入第三方库 from lxml import etree)
1.首先通过urllib类获取到网页的所有内容
2.通过partition获取其中的部分内容
3.在通过指定内容放到放到一个list中1!
代码如下:
#encoding: utf-8
import urllib, os # 获取网页内容
def getContent(urlAddr):
page = urllib.urlopen(urlAddr)
html = page.read()
return html
# 获取指定内容
def content(html):
str = r'<div id="post_list">'
content = html.partition(str)[2]
str1 = r'<script>'
content = content.partition(str1)[0] # 爬取内容太存到list中
def getTitleName(content, beg = 0):
try:
title_list = []
while True:
num1 = content.index('target="_blank">', beg)+16
num2 = content.index('</a>', num1)
title_list.append(content[num1:num2])
beg = num2
except ValueError:
return title_list SourceUrl = "http://www.cnblogs.com/pick/"
contentTotal = getContent(SourceUrl)
specilContent = content(contentTotal) for i in range (1, 40):
print "%d标题是:%s" % (i, getTitleName(contentTotal)[i])
显示效果为:
1标题是:架构之路(五):忘记数据库
2标题是:.NET基础拾遗(5)多线程开发基础
3标题是:你为什么不分享
4标题是:架构之路(三) 单元测试
5标题是:从中间件的历史来看移动App开发的未来
6标题是:架构之路(二):性能
7标题是:每个人都应该懂点函数式编程
8标题是:程序员读书这件事情
9标题是:前端代码异常日志收集与监控
10标题是:iOS开发系列--Swift语言
11标题是:设计-简约而不简单
12标题是:Entity Framework教程(第二版)
13标题是:搞个这样的APP要多久?
14标题是:REST简介
15标题是:探索C#之6.0语法糖剖析
16标题是:CLR 这些年有啥变化吗?
17标题是:理想的应用框架
18标题是:Web性能优化:What? Why? How?
19标题是:CSS十问——好奇心+刨根问底=CSSer
20标题是:难免的尴尬:代码依赖
21标题是:反馈或建议
22标题是:官方博客
23标题是:博客模板
24标题是:.NET招聘
25标题是:Java招聘
26标题是:C++招聘
27标题是:PHP招聘
28标题是:Web前端招聘
29标题是:<img src="http://img.cnblogs.com/friend_links/logo_aliyun.jpg" alt="阿里云" />
30标题是:沪江网
31标题是:站长之家
32标题是:天极网
33标题是:A5源码下载
34标题是:葡萄城控件
35标题是:又拍云存储
36标题是:高考查分
37标题是:听云APP
38标题是:融云IM云
39标题是:极光推送
[Finished in 0.7s]
github地址为:
python 学习爬虫教程~的更多相关文章
- 用命令访问D:\python学习\wendjia教程\aa.py
用命令访问D:\python学习\wendjia教程\aa.py d: -----------切换到D盘 cd python学习\wend ...
- Python学习入门教程,字符串函数扩充详解
因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习 ...
- Python学习—爬虫篇之破解ntml登陆问题
之前帮公司爬取过内部的一个问题单网站,要求将每个问题单的下的附件下载下来.一开始的时候我就遇到一个破解登陆验证的大坑...... (╬ ̄皿 ̄)=○ 由于在公司使用的都是内网,代码和网站的描述 ...
- Python学习——爬虫篇
requests 使用requests进行爬取 下面是我编写的第一个爬虫的脚本 import requests # 导入reques ...
- Python学习详细教程-武沛齐
目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:Python基础(一) Python之路[第三篇]:Python基础(二) Python之路[第四篇]:模块 Py ...
- Python学习基础教程(learning Python)--2.2.1 Python下的变量解析
前文提及过变量代表内存里的某个数据,这个说法有根据么? 这里我们介绍一个python内建(built-in)函数id.我们先看看id函数的帮助文档吧.在python查某个函数的帮助文档很简单,只用he ...
- Python学习---爬虫学习[scrapy框架初识]
Scrapy Scrapy是一个框架,可以帮助我们进行创建项目,运行项目,可以帮我们下载,解析网页,同时支持cookies和自定义其他功能. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的 ...
- Python学习---爬虫学习[requests模块]180411
模块安装 安装requests模块 pip3 install requests 安装beautifulsoup4模块 [更多参考]https://blog.csdn.net/sunhuaqiang1/ ...
- Python学习 —— 爬虫入门 - 爬取Pixiv每日排行中的图片
更新于 2019-01-30 16:30:55 我另外写了一个面向 pixiv 的库:pixiver 支持通过作品 ID 获取相关信息.下载等,支持通过日期浏览各种排行榜(包括R-18),支持通过 p ...
随机推荐
- springboot 配置文件中属性变量引用方式@@解析
这种属性应用方式是field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@ ...
- post提交方式为什么要序列化,而Get提交方式就不用?序列化做了什么?
这是因为后台能够直接处理的数据格式,是一种经过序列化的键值对数据,比如前端要向后台提交三个参数,分别是a=1,b=2,c=3,那么后台接收到的数据就应该是a=1&b=2&c=3(可以看 ...
- 关于POSTMAN做并发压测
一开始我个人在做测试时用到了POSTMAN,用了两种方式做测试, 第一种: 测试发现这种方式是阻塞排队,我让接口睡两秒,这100次请求间隔就是2秒,是串行执行 于是想到第二种,在一个collectio ...
- linux 内核定时器
无论何时你需要调度一个动作以后发生, 而不阻塞当前进程直到到时, 内核定时器是给你 的工具. 这些定时器用来调度一个函数在将来一个特定的时间执行, 基于时钟嘀哒, 并且 可用作各类任务; 例如, 当硬 ...
- ORACLE 两表关联更新三种方式
不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...
- 复盘:错误理解zuul路径匹配,无法使用zuul
场景: 项目中用到zuul时,配置url总是有问题,无法路由到对应微服务. 配置如下: zuul: routes: m2-member: path: /member/* serviceId: m2-m ...
- Dubbo-本地Bean测试
Dubbo本地测试API的Bean 一.建立一个测试类文件 二.测试API // 自己要测试的API public static final XxApi xxApi; 三.注入Bean static ...
- 使用 AT 指令进行 Socket 通信
BC26 支持使用 Socket 进行 TCP 和 UDP 协议通信,这两个协议也是 BC26 支持的众多通信协议的基础.本文讲解如何使用这两个协议与服务器端进行通信.在学习这篇文章前,请首先使用AT ...
- Appium+Pytest实现app并发测试
前言 这个功能已经写完很长时间了,一直没有发出来,今天先把代码发出来吧,有一些代码是参考网上写的,具体的代码说明今天暂时先不发了,代码解释的太详细还得我花点时间^_^, 毕竟想让每个人都能看明白也不容 ...
- JSR-133内存模型手册
1.介绍 JVM支持多种线程的执行,Threads代表的是线程类,位于java.lang.Thread包下,唯一的方式就是为用户在这个类下的对象创建线程,每一个线程关联着一个对象,一个线程将在star ...