[python]---从java到python(03)---爬虫

1.简单网页

#!/usr/bin/env python 
# -*- coding:utf-8 -*-import urllib.requestfile = urllib.request.urlopen("https://www.jd.com")
data = file.read()
# dataline = file.readline()
print(data)fhandle = open("E:/python/1_1.html", "wb")
fhandle.write(data)
fhandle.close()# filename = urllib.request.urlretrieve("http://edu.51cto.com", filename="E:/python/2.html")
# filename2 = urllib.request.urlretrieve("http://www.jd.com", filename="E:/python/3.html")print(file.getcode())
print(file.geturl())

2.模拟浏览器

#!/usr/bin/env python 
# -*- coding:utf-8 -*-import urllib.requesturl = "https://blog.csdn.net/java_zhangshuai/article/details/81749208"
headers = ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()
print(data)
fhandle = open("E:/python/2_1.html", "wb")
fhandle.write(data)
fhandle.close()

3.http请求

#!/usr/bin/env python 
# -*- coding:utf-8 -*-import urllib.requestkeywd = "hello"
# 中文等不符合url标准的,需要编码
keywd = urllib.request.quote(keywd)
url = "http://www.baidu.com/s?wd=" + keywd
req = urllib.request.Request(url)
data = urllib.request.urlopen(req).read()fhandle = open("E:/python/3_1.html", "wb")
fhandle.write(data)
fhandle.close()import urllib.parseurl = "http://www.iqianyue.com/mypost"
data = {"name": "zhangsan", "pass": "zhangsanpass"}
postdata = urllib.parse.urlencode(data).encode("utf-8")for x in range(1, 3):try:req = urllib.request.Request(url, postdata)req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")data = urllib.request.urlopen(req).read()fhandle = open("E:/python/3_2.html", "wb")fhandle.write(data)fhandle.close()print(len(data))except Exception as e:print("出现异常--->"+str(e))

4.爬取某电商商品列表下的图片集合

#!/usr/bin/env python 
# -*- coding:utf-8 -*-import urllib.request
import redef craw(url, page):html1 = urllib.request.urlopen(url).read()html1 = str(html1)pat1 = '<div id="plist".+? <div class="page clearfix">'# 根据pat1,过滤出图片部分result1 = re.compile(pat1).findall(html1)result1 = result1[0]pat2 = '<img width="220" height="220" data-img="1" src="//(.+?\.jpg)">'# 根据pat2,过滤出图片listimagelist = re.compile(pat2).findall(result1)x = 1for imageurl in imagelist:print(imageurl)imagename = "E:/python/爬虫/" + str(page) + str(x) + ".jpg"imageurl = "https://" + imageurltry:# 将图片链接是imageurl的图片存在路径为imagename的地方urllib.request.urlretrieve(imageurl, filename=imagename)except:x += 1x += 1for i in range(1, 10):url = "https://list.jd.com/list.html?cat=9192,12632,12633&page=" + str(i)craw(url, i)

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

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

相关文章

iOS网络请求认证挑战

一、引言 Http请求中认证挑战相关的代理如下&#xff1a; 1.将要发送一个认证挑战的请求 - connection:willSendRequestForAuthenticationChallenge:2.是否能够对一个保护空间进行认证&#xff08;已废弃&#xff09;- connection:canAuthenticateAgainstProtectionSpace:3.…

大数据相关整理

1.hdfs 1.1.namenode 所有文件的读写入口&#xff0c;用来保存文件的元信息 元信息包括&#xff1a; fsimage文件&#xff1a;文件权限信息文件在block块的偏移量文件的位置信息 editlogs文件&#xff1a;对文件的写操作日志文件写日志指令&#xff0c;为了安全同步&#xf…

OC编码规范

一、命名规范 1.类: (1)首字母大写&#xff0c;后续单词首字母大写。 (2)类名末尾要包含此类的类型&#xff0c;比如RootView&#xff0c;RootViewController。 2.属性 (1)属性名称首字母小写&#xff0c;后续首字母大写; (2)使用property&#xff0c;要保持必要的空格&#xf…

数据库---mysql的索引和引擎

mysql 的索引和引擎 mysql的数据都是存放在磁盘上的&#xff0c;都说索引会使查询变快&#xff0c;那么肯定是索引用了特殊的数据结构。 常见的数据结构有&#xff1a; hash hash就是咱们在hashMap中的那个hash&#xff0c;用hash确实快&#xff0c;而且时间复杂度是O&#x…

SQLite内置表SQLITE_MASTER

一、概述1.SQLite数据库中有一个内置表&#xff0c;名为SQLITE_MASTER&#xff0c;此表中存储着当前数据库中所有表的相关信息&#xff0c;比如表的名称、用于创建此表的sql语句、索引、索引所属的表、创建索引的sql语句等。2.SQLITE_MASTER表示只读的&#xff0c;只能对他进行…

redis单线程为什么还快的个人解释

面试的时候&#xff0c; 面试官问&#xff0c;redis是单线程还是多线程 答&#xff1a;单线程 面试官再问&#xff0c;单线程&#xff0c;为什么还快呢&#xff1f;不应该是多线程才更快吗&#xff1f;那这是不是有什么矛盾啊&#xff1f; 答&#xff1a;啊&#xff1f;&#x…

CDN的实现原理

一、传统模式 在描述CDN的实现原理前&#xff0c;让我们先看传统的未加缓存服务的访问过程&#xff0c;以便了解CDN缓存访问方式与未加缓存访问方式的差别&#xff1a; 用户提交域名→浏览器对域名进行解释→得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复…

数据库---事务的隔离级别

首先&#xff0c;我们下面说的数据库事务&#xff0c;都是使用INNODB引擎的结果。 MYISAM是没有事务的&#xff0c;也就没有下面这些说法。 1.数据库事务的四大特性&#xff1a; 原子性&#xff1a;事务包含的所有数据库操作要么全部成功&#xff0c;要不全部失败回滚一致性&…

iOS崩溃日志收集

一、概述iOS-App崩溃分为两种&#xff0c;一种是异常&#xff1a;NSException&#xff0c;一种是信号&#xff1a;Signal。二、异常崩溃1.NSException对象(1)reason&#xff1a;崩溃原因。(2)callStackSymbols&#xff1a;调用堆栈。(3)name&#xff1a;崩溃名称(4)userInfo&am…

统计iOS项目代码行数

打开终端&#xff0c;输入如下命令&#xff1a;find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" | xargs wc -l 此命令会迭代子目录&#xff0c;会统计每个源代码文件行数及总数&#xff0c;统计的行数包含空…

一个简单的权限系统模型

我们知道&#xff0c;一般说的简单的权限系统&#xff0c;都是使用shiro或者spring-security shiro之前用的比较多&#xff0c;原理也容易理解&#xff0c;算是比较成熟的权限方面的框架spring-security相对源码比较难懂&#xff0c;但由于与spring的完美融合&#xff0c;也有…

获取iOS任意线程调用堆栈(一)获取任意线程的调用栈地址列表

转载自&#xff1a;http://blog.csdn.net/jasonblog/article/details/49909163 如果要获取当前线程的调用栈&#xff0c;可以直接使用现有API&#xff1a;[NSThread callStackSymbols]。 但是并没有相关API支持获取任意线程的调用栈&#xff0c;所以只能自己编码实现。 1. 基础…

linux---基础01

Linux是一种自由和开放源码的操作系统&#xff0c;存在着许多不同的Linux版本&#xff0c;但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中&#xff0c;比如手机、平板电脑、路由器、台式计算机 Linux的目录结构 bin (binaries)存放二进制可执行文件 boot 存放用…

获取iOS任意线程调用堆栈(二)符号化理论:Mach-o文件结构

我们知道Windows下的文件都是PE文件&#xff0c;同样在OS X和iOS中可执行文件是Mach-o格式的。 所以我们如果要进行逆向分析&#xff0c;首先要熟悉Mach-o文件结构。 Mach-o包含三个基本区域&#xff1a; 头部&#xff08;header structure&#xff09;。 加载命令&#xff08;…

linux---基础02

二、用户、组管理命令 Linux采用组来组织和管理用户 在Linux中每个用户有唯一的用户标识符UID&#xff0c;该UID是一个无符号整数。 同时每个用户也必须至少属于一个组&#xff0c;也有组标识符GID。 其中UID与GID独立编号。 1. groupadd命令 &#xff08;1&#xff09;grou…

获取iOS任意线程调用堆栈(三)符号化理论:从Mach-o结构分析类名方法名

下面来讲讲如何从Mach-o文件中分析出类名和方法名&#xff0c;也让我们了解下class-dump的原理。 Mach-o结构有两个节&#xff1a;__objc_classname 和 __objc_methname 其中就是类名和方法名。 其中__objc_classname的偏移为&#xff1a;ox7961 __objc_methname的偏移为0x6…

linux---基础03

三、 文件属性操作命令 1. chown命令 &#xff08;1&#xff09;chown示例一&#xff1a;改变文件的属主 [rootserver1 ~]# chown user1 hello.txt功能&#xff1a;将指定文件hello.txt的属主&#xff08;所有者&#xff09;改为user1。&#xff08;2&#xff09;chown示例…

获取iOS任意线程调用堆栈(四)符号化实战

转载自&#xff1a;http://blog.csdn.net/jasonblog/article/details/49909209 1. 相关API和数据结构 由于我们在上面回溯线程调用栈拿到的是一组地址&#xff0c;所以这里进行符号化的输入输出应该分别是地址和符号&#xff0c;接口设计类似如下&#xff1a; - (NSString *)s…

linux---基础04

六、网卡配置 分配临时IP地址&#xff1a; ifconfig eth0 up // 启用eth0网卡ifconfig eth0 192.168.1.104 netmask 255.255.255.0静态分配IP地址&#xff1a; vi /etc/sysconfig/network-scripts/ifcfg-eth0service network restart //重启 network服务(重新加载网卡配置)动态…

记录---基于BigDecimal的特殊的四舍五入

机试问题—实现基于BigDecimal的特殊的四舍五入。 这是一道外企的机试题&#xff0c;我把里面的某个难点部分&#xff0c;摘出来详细如下&#xff1a; //实现特殊的四舍五入&#xff0c;先普通四舍五入取到小数点后两位&#xff0c;然后最后一位向后进位&#xff0c;0和5不变&…