Spider--补充_None_global_urlparse
# 知识点补充:
# 1) None:
a = None
if a:
print("非None")
else:
print("None")
if a is not None:
print("非None")
else:
print("None")
# None
# None
a = ''
if a:
print("非空")
else:
print("空")
if a != '':
print("非空")
else:
print("空")
# 空
# 空
# 2) global 的用法:在函数内引用 列表,集合,元组,字典的时候,不需要使用 global
l=[1,2,3]
s=set(l)
dic={'k1':'v1'}
t=(1,2,3) # 不可变类型
v='123'
def test():
l.append(4)
s.add(5)
dic['k2']='v2'
t2=list(t)
print(t2) # [1, 2, 3]
global v
v=v+'4'
test()
print(l) # [1, 2, 3, 4]
print(s) # {1, 2, 3, 5}
print(dic) # {'k1': 'v1', 'k2': 'v2'}
print(v) # 1234
# 3) 使用 urlparse解析 url:
# 我们通过parsed的各个属性来访问不同的部分
from urllib.parse import urlparse
url='https://www.cnblogs.com/Alexephor/p/11431950.html'
parsed = urlparse(url) # 将字符串进行解析
print('scheme :'+ parsed.scheme) #网络协议 https
print('netloc :'+ parsed.netloc) #服务器位置(也可呢能有用户信息) www.cnblogs.com
print('path :'+ parsed.path) #网页文件在服务器中存放的位置 /Alexephor/p/11431950.html
print('params :'+ parsed.params) #可选参数
print('query :'+ parsed.query) #连接符(&)连接键值对
print('fragment:'+ parsed.fragment) #拆分文档中的特殊猫
# print('username:'+ parsed.username) #用户名
# print('password:'+ parsed.password) #密码
print('hostname:'+ parsed.hostname) #服务器名称或者地址 www.cnblogs.com
print('port :', parsed.port) #端口(默认是80) None
[1, 2, 3]
[1, 2, 3, 4]
{1, 2, 3, 5}
{'k1': 'v1', 'k2': 'v2'}
1234
scheme :https
netloc :www.cnblogs.com
path :/Alexephor/p/11431950.html
params :
query :
fragment:
hostname:www.cnblogs.com
port : None
# 爬取内链和外链的练习请见 权威指南 的随书代码
Spider--补充_None_global_urlparse的更多相关文章
- scrapy知识补充--scrapy shell 及Spider
什么是scrapy shell? Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试xpath或css表达是,来查看他们的工作方式,方便爬取页面中的数据 ...
- 什么是网络爬虫(Spider) 程序
Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序.它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访 ...
- 让Scrapy的Spider更通用
1,引言 <Scrapy的架构初探>一文所讲的Spider是整个架构中最定制化的一个部件,Spider负责把网页内容提取出来,而不同数据采集目标的内容结构不一样,几乎需要为每一类网页都做定 ...
- 爬虫之 案列1补充(pipelines优化)
1. 先打开settings.py文件将 'ITEM_PIPELINES'启动(取消注释即可) 2. spider代码 # -*- coding: utf-8 -*- import scrapy im ...
- 【Spider】学习使用XMLFeedSpider
前面写了学习CrawlSpider遇到的问题后,今天学XMLFeedSpider又出现了启动后没爬取到数据,但又不报错的情况 经过排查,发现又是一个粗心大意的错误: class SpiderUserX ...
- 4-5 Scrapy知识补充
FormRequest FormRequest类是专门用来处理HTML表单的,同时对隐藏的表单处理也很方便.适合用来完成登录操作. 类原型:class scrapy.http.FormRequest( ...
- scrapy补充-分布式爬虫
spiders 介绍:在项目中是创建爬虫程序的py文件 #1.Spiders是由一系列类(定义了一个网址或一组网址将被爬取)组成,具体包括如何执行爬取任务并且如何从页面中提取结构化的数据. #2.换句 ...
- MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示(补充)
在2.1.栏目的前台显示中因右键没有添加视图把微软给鄙视了一下,后来有仔细研究了一下发现应该鄙视自己,其实这个功能是有的,是自己没搞清楚乱吐糟. 其实只要在NuGet中安装两个包(Microsoft. ...
- RabbitMq应用一的补充(RabbitMQ的应用场景)
直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...
- spider RPC入门指南
本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件基于J2SE 8开发,因此需要确保服务器上安装了JDK 8及以上版本,不依赖于任何额外需要独立安装和配置 ...
随机推荐
- php curl 获取请求头与DNS解析
1 php-curl方法相关设置具体方法在最下方的示例函数有相关编著, 这里主要描述两个小众需求a 设置访问DNS解析问题点: get请求网页获取返回值速度很快, 但是使用curl请求数据时, 响应速 ...
- 原生JS实现下拉列表
1 <div class="list"> 2 <ul> 3 <li> 4 <a href="#">Web部< ...
- 从源码的角度解析Mybatis的会话机制
坐在我旁边的钟同学听说我精通Mybatis源码(我就想不通,是谁透漏了风声),就顺带问了我一个问题:在同一个方法中,Mybatis多次请求数据库,是否要创建多个SqlSession会话? 可能最近撸多 ...
- 数组的高级应用含ES6 for of 用法
// 在ES5中常用的10种数组遍历方法: // 1. 原始的for循环语句 // 2. Array.prototype.forEach数组对象内置方法 // 3. Array.prototype.m ...
- 一个例子"入坑"布谷鸟算法(附完整py代码)
布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由 布谷鸟算法思想简介 更新位置的方式 莱维飞行 局部随机行走 抛出个 ...
- pv操作是否会造成死锁呢?
看了一些pv操作的例子,有一些基本原理不是想得很清楚. 有一个进程 while(true) { p(s); ...... v(s); } s的初值为1. 那么我的问题是,当多个该进程需要执行时,是否会 ...
- dubbo-config-spring自定义xml标签扩展
要实现自定义自定义标签扩展,需要有如下步骤(在spring中定义了两个接口NamespaceHandler.BeanDefinitionParser,用来实现扩展) 1.设计配置属性和JavaBean ...
- 闭包 - Js函数笔记
闭包 当函数被保存到外部时,将会生成闭包 闭包会导致原有作用域链不释放,造成内存泄漏 类似的代码就叫闭包 闭包的运行作用域 代码 a被执行,b被定义并保存出来 a结束,b被执行时,a的执行期上下文指向 ...
- linux上安装mitmproxy
一.去git上下载安装包 下载mitmproxy二进制安装包:https://github.com/mitmproxy/mitmproxy/releases/ 二.安装 #上传 rz 安装包的本地路径 ...
- maven 获取pom.xml的依赖---即仓库搜索服务
常用仓库地址: http://repository.sonatype.org/ (https://repository.sonatype.org/)如下图: http://www.mvnrepo ...