python爬虫总纲:步入爬虫殿堂

PYTHON 爬虫测试题(面试必备) 爬虫测试题(面试必备) 1.简述一下爬虫的步骤 答案: 1. 确定需求(人) 2. 确定资源(人) 3. 通过URL获取网站的返回信息(爬虫) 4. 定位数据(爬虫) 5. 存储数据(程序) 2.遇到反爬机制怎么处理 答案: 反爬机制(headers): 1. 判断User-Agent 2. 判断Referer 3. 判断Cookie 如果以上操作还是没有成功爬取页面,就用将浏览器中的全部头信息放进来 注意 阅读详情

网络爬虫概述

定义

网络蜘蛛、网络机器人,抓取网络数据的程序。

其实就是用Python程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好。

爬取数据目的

1、获取大量数据,用来做数据分析
2、公司项目的测试数据,公司业务所需数据

企业获取数据方式

1、公司自有数据
2、第三方数据平台购买(数据堂、贵阳大数据交易所)
3、爬虫爬取数据 : 第三方平台上没有,或者价格太高

Python做爬虫优势

1、Python :请求模块、解析模块丰富成熟,强大的Scrapy网络爬虫框架
2、PHP :对多线程、异步支持不太好
3、JAVA:代码笨重,代码量大
4、C/C++:虽然效率高,但是代码成型慢

爬虫分类

1、# 通用网络爬虫(搜索引擎使用,遵守robots协议)
   robots协议 :网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,
               通用网络爬虫需要遵守robots协议(君子协议)
			  https://www.taobao.com/robots.txt
2、# 聚焦网络爬虫 :自己写的爬虫程序

爬虫爬取数据步骤

1、1、确定需要爬取的URL地址
2、2、由请求模块向URL地址发出请求,并得到网站的响应
3、3、从响应内容中提取所需数据
     1、所需数据,保存
     2、页面中有其他需要继续跟进的URL地址,继续第2步去发请求,如此循环

爬虫请求模块一

模块名及导入urllib.request

1、模块名:urllib.request
2、导入方式:
   1、import urllib.request
   2、from urllib import request
3.使用方法:
	 req = request.Request(url,headers=headers)
	 res = request.urlopen(req)
     html = res.read().decode('utf-8')

常用方法详解

urllib.request.urlopen()方法

  • 作用

向网站发起请求并获取响应对象

  • 参数
1、URL:需要爬取的URL地址
2、timeout: 设置等待超时时间,指定时间内未得到响应抛出超时异常
  • 响应对象(response)方法
1、bytes = response.read()
2、string = response.read().decode('utf-8')
3、url = response.geturl() # 返回实际数据的URL地址
4、code = response.getcode() # HTTP响应码
# 补充
5、string.encode() # string -> bytes
6、bytes.decode()  # bytes -> string

urllib.request.Request()

作用

创建请求对象(包装请求,重构User-Agent,使程序更像正常人类请求)

参数

1、URL:请求的URL地址
2、headers:添加请求头(爬虫和反爬虫斗争的第一步)

使用流程

1、构造请求对象(重构User-Agent)
   req = urllib.request.Request(url=url,headers={'User-Agent':'Mozilla/5.0 xxxx'})
2、发请求获取响应对象(urlopen)
   res = urllib.request.urlopen(req)
3、获取响应对象内容
   html = res.read().decode('utf-8')

示例:向测试网站发起请求,构造请求头并从响应中确认请求头信息

headers = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)'}

URL地址编码模块

模块名

urllib.parse

作用

给URL地址中查询参数进行编码

编码前:https://www.baidu.com/s?wd=美女
编码后:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

常用方法

1、urlencode({dict})
   urlencode({'wd':'美女','pn':'20'})
   #编码后 :'wd=%E8%D5XXX&pn=20'

2、quote(string)
   quote('织女')
   #编码后 :'%D3%F5XXX'

3、unquote('%D3%F5XXX')
	#解码后:织女

使用方法:

from urllib import parse
#-----------urlencode({dict})编码-----------------
query_string = {'wd' : '美女'}
result = parse.urlencode(query_string)
# result: 'wd=%e7%be%8e%e5%a5%b3'
#----------quote(string)编码------------------
string = '美女'
print(parse.quote(string))
# 结果: %E7%BE%8E%E5%A5%B3
#----------unquote(string)解码----------------
string = '%E7%BE%8E%E5%A5%B3'
result = parse.unquote(string)
print(result)

拼接URL地址的3种方式

1、字符串相加
  'https://www.baidu.com/s?' + urlencode({'wd':'美女','pn':'50'})
2、字符串格式化(占位符)
  'https://www.baidu.com/s?%s' % urlencode({'wd':'美女','pn':'50'})
3、format()方法
   'https://www.baidu.com/s?{}'.format(urlencode({'wd':'美女','pn':'50'}))

总结

1、urllib.request
   1、urllib.request.Request(url=url,headers=headers)
   2、urllib.request.urlopen(req)
2、urllib.parse
   1、urllib.parse.urlencode({'wd':'美女'})
   2、urllib.parse.quote('美女')

正则解析模块re

re模块使用流程

  • 方法一
r_list=re.findall('正则表达式',html,re.S)
  • 方法二
# 1、创建正则编译对象
pattern = re.compile('正则表达式',re.S)
r_list = pattern.findall(html)

正则表达式元字符

元字符含义
.任意一个字符(不包括\n)
\d一个数字
\s空白字符
\S非空白字符
[]包含[]内容
*出现0次或多次
+出现1次或多次

推荐使用方法一

# 匹配任意一个字符的正则表达式
import re
# 方法一
  pattern = re.compile('.',re.S)
# 方法二
  pattern = re.compile('[\s\S]')

贪婪匹配和非贪婪匹配

贪婪匹配(默认)

1、在整个表达式匹配成功的前提下,尽可能多的匹配 * + ?
2、表示方式: .*  .+  .?

非贪婪匹配

1、在整个表达式匹配成功的前提下,尽可能少的匹配 * + ?
2、表示方式: .*?  .+?  .??

正则表达式分组

作用

在完整的模式中定义子模式,将每个圆括号中子模式匹配出来的结果提取出来

示例

import re

s = 'A B C D'
p1 = re.compile('\w+\s+\w+')
print(p1.findall(s))
# ['A B','C D']

p2 = re.compile('(\w+)\s+\w+')
print(p2.findall(s))
# ['A','C']

p3 = re.compile('(\w+)\s+(\w+)')
print(p3.findall(s))
# ['A B','C D']
# [('A','B'),('C','D')]

分组总结

1、在网页中,想要什么内容,就加()
2、先按整体正则匹配,然后再提取分组()中的内容
   如果有2个及以上分组(),则结果中以元组形式显示 [(),(),()]

字符串常用方法

# 'hello world'.strip()  --> 'hello world'
# 'hello world'.split(' ')  --> ['hello','world']
# 'hello world'.replace(' ','#') -> 'hello#world'

requests模块

安装

  • Windows
# 方法一
   进入cmd命令行 :python -m pip install requests
# 方法二
   右键管理员进入cmd命令行 :pip install requests

常用方法

requests.get()
  • 作用
# 向网站发起请求,并获取响应对象
res = requests.get(url,headers=headers)
  • 参数
1、url :需要抓取的URL地址
2、headers : 请求头
3、timeout : 超时时间,超过时间会抛出异常
  • 响应对象(res)属性
1、encoding :响应字符编码
   res.encoding = 'utf-8'
2、text :字符串
3、content :字节流
4、status_code :HTTP响应码
5、url :实际数据的URL地址


# 方式一 
res = requests.get(url,headers=headers)
res.encoding = 'utf-8'
html = res.text
# 方式二
res = requests.get(url,headers=headers)
html = res.content.decode('utf-8')
  • 非结构化数据保存
with open('xxx.jpg','wb') as f:
	f.write(res.content)

查询参数-params

  • 参数类型
字典,字典中键值对作为查询参数
  • 使用方法
1、res = requests.get(url,params=params,headers=headers)
2、特点: 
   * url为基准的url地址,不包含查询参数
   * 该方法会自动对params字典编码,然后和url拼接
  • 示例
import requests

baseurl = 'http://tieba.baidu.com/f?'
params = {
  'kw' : '赵丽颖吧',
  'pn' : '50'
}
headers = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)'}
# 自动对params进行编码,然后自动和url进行拼接,去发请求
res = requests.get(baseurl,params=params,headers=headers)
res.encoding = 'utf-8'
print(res.text)

requests模块参数总结

1、url 
2、params : {}
3、proxies: {}
4、auth:   ()
5、verify:  True/False
6、timeout

requests.post()

  • 适用场景
Post类型请求的网站
  • 参数-data
response = requests.post(url,data=data,headers=headers)
# data :post数据(Form表单数据-字典格式)
  • 请求方式的特点
# 一般
GET请求 : 参数在URL地址中有显示
POST请求: Form表单提交数据

xpath解析

  • 定义
XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言,同样适用于HTML文档的检索
  • 示例HTML代码
<ul class="book_list">
    <li>
        <title class="book_001">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>69.99</price>
    </li>

    <li>
        <title class="book_002">Spider</title>
        <author>Forever</author>
        <year>2019</year>
        <price>49.99</price>
    </li>
</ul>
  • 匹配演示
1、查找所有的li节点
   //li
2、查找li节点下的title子节点中,class属性值为'book_001'的节点
   //li/title[@class="book_001"]
3、查找li节点下所有title节点的,class属性的值
   //li//title/@class

# 只要涉及到条件,加 []
# 只要获取属性值,加 @
  • 选取节点
1、// :从所有节点中查找(包括子节点和后代节点)
2、@  :获取属性值
   # 使用场景1(属性值作为条件)
     //div[@class="movie"]
   # 使用场景2(直接获取属性值)
     //div/a/@src
  • 匹配多路径(或)
xpath表达式1 | xpath表达式2 | xpath表达式3
  • 常用函数
1、contains() :匹配属性值中包含某些字符串节点
   # 查找class属性值中包含"book_"的title节点
     //title[contains(@class,"book_")]
   # 匹配所有段子的 div 节点
     //div[contains(@id,"qiushi_tag_")]
    
     <div class="article block untagged mb15   typs_long" id="qiushi_tag_122044339">
     </div>

     <div class="article block untagged mb15 typs_long" id="qiushi_tag_122044339">
     </div>
2、text() :获取节点的文本内容
   # 查找所有书籍的名称
     //ul[@class="book_list"]/li/title 
        #结果:<element title at xxxx>
     //ul[@class="book_list"]/li/title/text()
        #结果:'Harry Potter'
1、获取猫眼电影中电影信息的 dd 节点
   //dl[@class="board-wrapper"]/dd
2、获取电影名称的xpath://dl[@class="board-wrapper"]/dd//p[@class="name"]/a/text()
  获取电影主演的xpath://dl[@class="board-wrapper"]/dd//p[@class="star"]/text()
  获取上映商检的xpath://dl[@class="board-wrapper"]/dd//p[@class="releasetime"]/text()
  • 匹配规则
1、节点对象列表
   # xpath示例: //div、//div[@class="student"]、//div/a[@title="stu"]/span
2、字符串列表
   # xpath表达式中末尾为: @src、@href、text()
  • xpath高级
1、基准xpath表达式: 得到节点对象列表
2、for r in [节点对象列表]:
       username = r.xpath('./xxxxxx')  
       # 此处注意遍历后继续xpath一定要以: . 开头,代表当前节点

lxml解析库

  • 使用流程
1、导模块
   from lxml import etree
2、创建解析对象
   parse_html = etree.HTML(html)
3、解析对象调用xpath
   r_list = parse_html.xpath('xpath表达式')
   # 只要调用xpath,结果一定为列表
  • 练习
from lxml import etree

html = '''<div class="wrapper">
	<i class="iconfont icon-back" id="back"></i>
	<a href="/" id="channel">新浪社会</a>
	<ul id="nav">
		<li><a href="http://domestic.firefox.sina.com/" title="国内">国内</a></li>
		<li><a href="http://world.firefox.sina.com/" title="国际">国际</a></li>
		<li><a href="http://mil.firefox.sina.com/" title="军事">军事</a></li>
		<li><a href="http://photo.firefox.sina.com/" title="图片">图片</a></li>
		<li><a href="http://society.firefox.sina.com/" title="社会">社会</a></li>
		<li><a href="http://ent.firefox.sina.com/" title="娱乐">娱乐</a></li>
		<li><a href="http://tech.firefox.sina.com/" title="科技">科技</a></li>
		<li><a href="http://sports.firefox.sina.com/" title="体育">体育</a></li>
		<li><a href="http://finance.firefox.sina.com/" title="财经">财经</a></li>
		<li><a href="http://auto.firefox.sina.com/" title="汽车">汽车</a></li>
	</ul>
	<i class="iconfont icon-liebiao" id="menu"></i>
</div>'''

# 获取所有 a 节点的文本内容
//ul//li/a/text()
# 获取所有 a 节点的 href 的属性值
//ul//li/a/@href
# 获取 图片、军事、...,不包括新浪社会  
//ul//li/a/title[not(contains(@title,"社会"))]/text()

常见的反爬机制及处理方式

1、Headers反爬虫 :Cookie、Referer、User-Agent
   解决方案: 通过F12获取headers,传给requests.get()方法
        
2、IP限制 :网站根据IP地址访问频率进行反爬,短时间内进制IP访问
   解决方案: 
        1、构造自己IP代理池,每次访问随机选择代理,经常更新代理池
        2、购买开放代理或私密代理IP
        3、降低爬取的速度
        
3、User-Agent限制 :类似于IP限制
   解决方案: 构造自己的User-Agent池,每次访问随机选择
        
4、Ajax动态加载 :从url加载网页的源代码后,会在浏览器执行JavaScript程序,这些程序会加载更多内容
   解决方案: F12或抓包工具抓包处理

5、对查询参数加密
   解决方案: 找到JS文件,分析加密算法,用Python实现加密执行JS文件中的代码,返回加密数据
        
6、对响应内容做处理
   解决方案: 打印并查看响应内容,用xpath或正则做处理

cookie模拟登录

  • 适用网站及场景
抓取需要登录才能访问的页面
http://www.renren.com/970294164/profile
  • 方法一
1、先登录成功1次,获取到携带登陆信息的Cookie
   F12打开控制台,在页面输入用户名、密码,登录成功,找到/home(一般在抓到地址的上面)
2、携带着cookie发请求
   ** Cookie
   ** Referer(源,代表你从哪里转过来的)
   ** User-Agent
  • 方法二
  1. 知识点
利用requests模块中的session会话保持功能
  1. session会话使用流程
1、实例化session对象
   session = requests.session()
2、让session对象发送get或者post请求
   res = session.get(url,headers=headers)
  1. 具体步骤
1、寻找登录时POST的地址
   查看网页源码,查看form,找action对应的地址: http://www.renren.com/PLogin.do

2、发送用户名和密码信息到POST的地址
   * 用户名和密码信息以什么方式发送? -- 字典
     键 :<input>标签中name的值(email,password)
     值 :真实的用户名和密码
     post_data = {'email':'','password':''}
  1. 程序实现
整体思路
1、先POST: 把用户名和密码信息POST到某个地址中
2、再GET:  正常请求去获取页面信息

json解析模块

json.loads(json格式字符串)

  • 作用
把json格式的字符串转为Python数据类型
  • 示例
html_json = json.loads(res.text)

json.dump(python,f,ensure_ascii=False)

  • 作用
把python数据类型 转为 json格式的字符串
# 一般让你把抓取的数据保存为json文件时使用
  • 参数说明
第1个参数: python类型的数据(字典,列表等)
第2个参数: 文件对象
第3个参数: ensure_ascii=False # 序列化时编码
  • 示例
import json

app_dict = {
    '应用名称' : 'QQ',
    '应用链接' : 'http://qq.com'
}
with open('小米.json','a') as f:
	json.dump(app_dict,f,ensure_ascii=False)
  • json转python
变量名 = json.loads(res.text)
  • python转json(保存为json文件)
# 保存所抓取数据为json数据
with open(filename,'a') as f:
	json.dump(字典/列表/元组,f,ensure_ascii=False)

scrapy框架

  • 定义
异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架
  • 安装
# Windows安装
cmd命令行(管理员): python -m pip install Scrapy
# Visual C++ 14.0 xxx is required
  • Scrapy框架五大组件
1、引擎(Engine)      :整个框架核心
2、调度器(Scheduler) :维护请求队列
3、下载器(Downloader):获取响应对象
4、爬虫文件(Spider)  :数据解析提取
5、项目管道(Pipeline):数据入库处理
**********************************
# 下载器中间件(Downloader Middlewares) : 引擎->下载器,包装请求(随机代理等)
# 蜘蛛中间件(Spider Middlewares) : 引擎->爬虫文件,可修改响应对象属性
  • scrapy爬虫工作流程
# 爬虫项目启动
1、由引擎向爬虫程序索要第一个要爬取的URL,交给调度器去入队列
2、调度器处理请求后出队列,通过下载器中间件交给下载器去下载
3、下载器得到响应对象后,通过蜘蛛中间件交给爬虫程序
4、爬虫程序进行数据提取:
   1、数据交给管道文件去入库处理
   2、对于需要继续跟进的URL,再次交给调度器入队列,依次循环
  • scrapy常用命令
# 1、创建爬虫项目
scrapy startproject 项目名
# 2、创建爬虫文件
scrapy genspider 爬虫名 域名
# 3、运行爬虫
scrapy crawl 爬虫名
  • scrapy项目目录结构
Baidu                   # 项目文件夹
├── Baidu               # 项目目录
│   ├── items.py        # 定义数据结构
│   ├── middlewares.py  # 中间件
│   ├── pipelines.py    # 数据处理
│   ├── settings.py     # 全局配置
│   └── spiders
│       ├── baidu.py    # 爬虫文件
└── scrapy.cfg          # 项目基本配置文件
  • 全局配置文件settings.py详解
# 1、定义User-Agent
USER_AGENT = 'Mozilla/5.0'
# 2、是否遵循robots协议,一般设置为False
ROBOTSTXT_OBEY = False
# 3、最大并发量,默认为16
CONCURRENT_REQUESTS = 32
# 4、下载延迟时间
DOWNLOAD_DELAY = 1
# 5、请求头,此处也可以添加User-Agent
DEFAULT_REQUEST_HEADERS={}
# 6、项目管道
ITEM_PIPELINES={
	'项目目录名.pipelines.类名':300
}
  • 创建爬虫项目步骤
1、新建项目 :scrapy startproject 项目名
2、cd 项目文件夹
3、新建爬虫文件 :scrapy genspider 文件名 域名
4、明确目标(items.py)
5、写爬虫程序(文件名.py)
6、管道文件(pipelines.py)
7、全局配置(settings.py)
8、运行爬虫 :scrapy crawl 爬虫名

  • pycharm运行爬虫项目
1、创建begin.py(和scrapy.cfg文件同目录)
2、begin.py中内容:
	from scrapy import cmdline
	cmdline.execute('scrapy crawl maoyan'.split())

猫眼电影案例

  • 目标
URL: 百度搜索 -> 猫眼电影 -> 榜单 -> top100榜
内容:电影名称、电影主演、上映时间
  • 实现步骤
  1. 创建项目和爬虫文件
# 创建爬虫项目
scrapy startproject Maoyan
# 创建爬虫文件
cd Maoyan
scrapy genspider maoyan maoyan.com
# Maoyan/Maoyan/spiders/maoyan.py
  1. 定义要爬取的数据结构(items.py)
name = scrapy.Field()
star = scrapy.Field()
time = scrapy.Field()
  1. 编写爬虫文件(maoyan.py)
1、基准xpath,匹配每个电影信息节点对象列表
	dd_list = response.xpath('//dl[@class="board-wrapper"]/dd')
2、for dd in dd_list:
	电影名称 = dd.xpath('./a/@title')
	电影主演 = dd.xpath('.//p[@class="star"]/text()')
	上映时间 = dd.xpath('.//p[@class="releasetime"]/text()')

思路梳理

1、items.py : 定义爬取的数据结构
2、maoyan.py: 提取数据
   from ..items import MaoyanItem
   item = MaoyanItem()
   item['name'] = xpathxxxxxx
   yield item # 把item对象(数据)交给管道文件处理
3、pipelines.py: 处理数据
  class MaoyanPipeline(object):
    def process_item(self,item,spider):
        # 处理item数据(从爬虫文件传过来的item对象)
        return item 
4、settings.py: 开启管道
   ITEM_PIPELINES = {
       # 优先级1-1000,数字越小优先级越高
       'Maoyan.pipelines.MaoyanPipeline':200
   }

代码实现

class MaoyanSpider(scrapy.Spider):
    name = 'maoyan3'
    allowed_domains = ['maoyan.com']

    # 重写start_requests()方法,把所有URL地址都交给调度器
    def start_requests(self):
        for offset in range(0,91,10):
            url = 'https://maoyan.com/board/4?offset={}'.format(offset)
            # 交给调度器
            yield scrapy.Request(
                url = url,
                callback = self.parse_html
            )
  1. 定义管道文件(pipelines.py)
class MaoyanPipeline(object):
    def process_item(self,item,spider):
        # 处理item数据(从爬虫文件传过来的item对象)
        return item 
  1. 全局配置文件(settings.py)
USER_AGENT = 'Mozilla/5.0'
ROBOTSTXT_OBEY = False
DEFAULT_REQUEST_HEADERS = {
	'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	'Accept-Language': 'en',
}
ITEM_PIPELINES = {
   'Maoyan.pipelines.MaoyanPipeline': 300,
}
  1. 创建并运行文件(run.py)
from scrapy import cmdline
cmdline.execute('scrapy crawl maoyan'.split())

总结

  • 节点对象.xpath(’’)
1、列表,元素为选择器 [<selector xpath='' data='A'>,]
2、列表.extract() :序列化列表中所有选择器为Unicode字符串 ['A','B','C']
3、列表.extract_first() 或者 get() :获取列表中第1个序列化的元素(字符串)
  • pipelines.py中必须由1个函数叫process_item
def process_item(self,item,spider):
	return item ( * 此处必须返回 item )
  • 管道处理数据流程
1、在爬虫文件中 为 items.py中类做实例化,用爬下来的数据给对象赋值
	from ..items import MaoyanItem
	item = MaoyanItem()
    item['name'] = xxx
2、管道文件(pipelines.py)
3、开启管道(settings.py)
	ITEM_PIPELINES = { '项目目录名.pipelines.类名':优先级 }# 优先级1-1000,数字越小优先级越高
2019-08-12爬虫FCRA考试题库 2019-08-12爬虫FCRA考试题库 仅题目,无答案~ 仅供参考用 立即下载

相关推荐

Python网络爬虫第三周测试题mooc

Python网络爬虫第三周测试题moocPython网络爬虫第三周测试题moocPython网络爬虫第三周测试题moocPython网络爬虫第三周测试题moocPython网络爬虫第三周测试题moocPython网络爬虫第三周测试题mooc

python期末复习提纲

python期末复习笔记

weixin_51579074的博客 1625

HawthsforArcGIS9

很老版本的的一个arcgis插件,在10.0以上版本中,使用自定义工具------>从文件添加 方式加载工具,10.0-10.6版本均可用

Python爬虫常见的面试题

(1)通过请求头的一些特征来判断是否为爬虫。user-agent被检测,那可以找一些常见的user-agent放入列表,然后每次爬取随机选一个。referer检测,这种情况就是我们可以将其设置为网站首页或者百度这些的,具体看网站。(2)通过访问频率来判断是否是一个爬虫。一般就是设置抓取时间间隔。(3)爬取频繁将ip进行封禁。使用代理IP来解决。(4)验证码反爬简单的图形验证码:使用常见的一些模块去识别。例如ddddocr。

不愿意透露姓名的网友 1万+

【爬虫】安全测试题库(Python)

简单Python爬虫:获取URL链接;正则处理;保存TXT

GtaV1.5apk

GTA V的 APK 的DEMO安装包(http://tieba.baidu.com/p/5491122542?share=9105&fr=share)()()

100道爬虫面试题以及答案(宝典级别的)

爬虫的面试题以及答案

wanlitengfei的专栏 1万+

Tesseral 建立地震模型

0. 前言 本节内容主要是总结如何使用 Tesseral 工具建立模型。 1. 模型建立步骤 设置模型的宽度和深度 此处默认都为1000,之后点击“确定” 建立地层 绘制新的地层 右键点击“New polygon” 绘制地层,设置第二个层的名字和纵波速度 绘制第三层,第三层覆盖在前一个层上 第四层如上,第四层如果是最后一层,绘制该层时,要将深度1000包围。 设置观测系统 设置炮点 设置子波为雷克子波,频率设置为30 检波点设置 运行模型 设置好如上选择后,

weixin_41857483的博客 6539

Python 大二复习提纲

unit 11.注释、变量命名、缩进注释单行注释:用标记。多行注释:用三引号'''或"""包围变量命名可以使用字母、数字、下划线,缩进: Python中用于区分代码块,通常是4个空格。2.数据输入字符串函数input()3.字符串解析函数eval()功能解析并执行一个字符串表达式,并返回结果。特点能将输入的字符串解析为对应的数据类型(如数字、列表等)。注意使用时需确保输入安全,因为eval()可以执行任意代码。4.输出函数print()

Kixuan214的博客 1294

银河麒麟V10 SP1 x86_64架构下离线部署全栈开发环境:Java8+Mysql5.7+Tomcat8实战指南

本文详细介绍了在银河麒麟V10 SP1 x86_64架构下离线部署全栈开发环境的实战指南,包括Java8、Mysql5.7和Tomcat8的安装与配置。通过步骤详解和常见问题排查,帮助开发者在国产操作系统上高效搭建稳定可靠的开发环境,特别适合政务系统和企业级应用部署。

weixin_29230901的博客 373

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3360

Python深度学习:从入门到实战

亲爱的读者,欢迎您翻开这本书。我们即将探索的,是深度学习的宇宙——一个由数据、算法与算力构筑的奇妙世界。它既是严谨的科学,也是创造的艺术,更是一条通往未来智慧的修行之路。本书将带您从最基础的数学原理出发,亲手搭建神经网络,驾驭Transformer等前沿模型,最终将智慧转化为现实世界的价值。请放下畏惧,保持好奇。这不仅是一次知识的学习,更是一场思维的远行。来,随我一起,开启这趟非凡的旅程吧。

Yuner2000的博客 209

从Gotham到Foundry:一文读懂Palantir三大产品线(Gotham/Foundry/Apollo)的核心差异与适用场景

本文深度解析Palantir三大产品线Gotham、Foundry和Apollo的核心差异与适用场景。Gotham专为国防与情报设计,提供军事级安全分析;Foundry是企业数字化转型的通用平台,支持低代码开发;Apollo则是云原生基石,确保系统可靠运行。通过对比产品架构与典型应用,帮助技术决策者根据需求做出明智选择。

weixin_42524499的博客 841

Python知识复习总结笔记

对Python进行学习复习总结,没事的时候可以看看。

qq_33765205的博客 2094

构建面向嵌入式Linux的ARM64交叉编译工具链:从sysroot配置到CMake实战

本文详细介绍了如何构建面向嵌入式Linux的ARM64交叉编译工具链,从sysroot配置到CMake实战。通过分步指导,帮助开发者解决架构不一致问题,提升编译效率,特别适用于树莓派等ARM64设备开发。文章涵盖sysroot机制、环境搭建、CMake配置及常见问题解决方案,是嵌入式开发的实用指南。

weixin_42537142的博客 199

MCU中GPIO口的驱动方式

MCU中GPIO口的驱动方式 导读: MCU芯片中GPIO口的驱动方式大的可分为输出和输入两类,小的分可以分为8种。 一、四种输入方式 ①上拉输入: 上拉输入抗干扰能力强,特别适合接地信号的输入(比如低电平有效的按键信号输入)。其工作原理如图1所示。 I/O 端口与TTL 施密特触发器之前接入了一个30K~50K 欧姆的上拉电阻,当I/O 端口悬空时,此时MCU 也能读到稳定的高电平状态,...

优快云Frewen的博客 3374

python基础总复习

单引号或双引号新知识点:三引号定义字符串(支持换行)关关雎鸠,在河之洲,窈窕淑女,君子好逑。'''列表名称 = [元素值1, 元素值2, 元素值3]​# list列表类型支持直接打印# 打印列表的数据类型所以其方法主要是查询方法编号函数作用1元组[索引]根据==索引下标==查找元素2len()统计元组中数据的个数列表、元组的时候还给大家做过一个扩展:如何开发一个点名程序字典变量 = {}或字典变量 = dict()​。

qq_55451220的博客 2802

基于滤波反投影的图像重建算法matlab仿真

基于滤波反投影的图像重建算法是一种用于医学影像重建的计算机辅助技术。该算法可以从投影数据中重建出高质量的三维图像,被广泛应用于医学影像学、CT、PET等领域。本文将详细介绍基于滤波反投影的图像重建算法的原理、步骤和应用。一、原理介绍基于滤波反投影的图像重建算法基于X射线CT成像原理,它的主要思想是通过对投影数据进行处理,反推出被成像物体的三维形状。其核心原理是投影数据与目标物体之间的线性关系,即通过估计目标物体的吸收率来计算投影数据的变化,从而反推出目标物体的三维形状。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 386

Python期末复习大纲(原创)

定义:在Python中,函数是一种组织代码的方式,它允许你将代码块封装起来,以便在程序中多次调用。函数可以带有参数,这些参数是传递给函数的值,函数也可以返回值。使用# 函数体# 调用函数。

XSING_9211的博客 875

Swin Transformer 与 CNN 结合实现图像分类

Swin Transformer 与 CNN 结合实现图像分类。(含swin transformer 结构讲解,cnn网络搭建,代码)

这里是Mae。 5027

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 关于vscode使用断点调试vue项目
下一篇: Oracle数据库:1小时速成大法
七钥
博客等级 码龄9年 744粉丝 53原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值