1.正则表达式匹配手机号(会手写表达式)
pattern = re.compile(“1(3|4|5|6|7|8|9)\d\d\d\d\d\d\d\d\d”)
pattern = re.compile(“1[3-9]\d{9}”)
a = pattern.match(phone)
print(a)
2.正则表达式匹配邮箱(会手写表达式)
pattern = re.compile("\w+_?\w+@\w+.[a-zA-Z]+")
pattern = re.compile("([0-9A-Za-z-_.]+)@([0-9a-z]+.[a-z]{2,3}(.[a-z]{2})?)")
result = pattern.match(email)
print(result)
3.正则表达式匹配强度
def password_type(password):
if 6 <= len(password) <= 12:
weak = re.compile(r’^((\d+)|([A-Za-z]+)|(\W+))$’)
level_weak = weak.match(password)
level_middle = re.match(r’([0-9]+(\W+|_+|[A-Za-z]+))+|([A-Za-z]+(\W+|_+|\d+))+|((\W+|_+)+(\d+|\w+))+’,
password)
level_strong = re.match(r’(\w+|\W+)+’, password)
if level_weak:
print(‘弱’, level_weak.group())
else:
if (level_middle and len(level_middle.group()) == len(password)):
print(‘中’, level_middle.group())
else:
if level_strong and len(level_strong.group()) == len(password):
print(‘强’, level_strong.group())
else:
print(“密码长度不够”)
4.match和search的区别
match()从头匹配
search()从任意位置匹配
5.python如何执行js代码并调用某个函数
破解网址中的加密参数
import execjs(先导包)
with open(“a.js”, encoding=“utf-8”) as f:
js_code = f.read()
js_obj = execjs.compile(js_code)
a = js_obj.call(“hex_md5”, “zhangsan”)
print(a)
6.正则如何换行匹配
\n
7.html2text库是做什么的
获取网页源码中的文本
HTML代码转换为Text文本
8.正则表达式的常用方法有哪些
test() exec() match() replace()
9.常用的爬虫框架有哪些?
scrapy
pyspider
portia
newspaper
goose
10.scrapy框架的安装流程以及对应错误的解决方案
1.打开cmd命令敲pip install scrapy,然后回车
安装可能出现的问题
问题1
Microsoft Visual C++ 14.0 is required…
解决方案
https://blog.csdn.net/nima1994/article/details/74931621?locationNum=10&fps=1
或者通过源码安装
问题2
time out
解决方案
pip install -i https://pypi.douban.com/simple scrapy
问题3
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: DLL load failed: %1
解决方案
pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography
问题4
ModuleNotFoundError: No module named ‘_cffi_backend’
解决方案
pip install pypiwin32
问题5
scrapy shell url 发生TypeError: ‘float’ object is not iterable
解决方案
检查当下的twisted版本是17.1.0, 需要切换至16.6.0
pip uninstall twisted
pip install twisted==16.6.0
11.如何使用scrapy创建一个爬虫项目
打开cmd命令行敲cd Desktop,然后回车
然后敲 scrapy startproject 最后加要爬的项目名称***Spider
12.爬虫项目目录的每个文件干什么用的
spiders:改文件专门存放爬虫文件
items: 用于存储爬虫数据
middlewares: 用于处理爬虫签的请求和响应,例如设置headers
pipelines :管道文件,在存爬虫数据之前,会先穿过管道
settings : 全局爬虫的配置文件,一般用设置反反爬虫相关措施,数据库配置
scapy : 用于部署爬虫项目到服务器中
13.scrapy的运行原理是什么
scrapy引擎。顾名思义,它负责调用爬虫爬取页面并将数据交给管道来处理。
调度程序。调度程序从引擎获取请求,然后将这些请求交给相应的处理者来处理。
下载器。下载器负责获取web页面,然后将它们交给引擎来处理。
爬虫。这是我们要编写的部分,爬虫负责从页面抽取要处理的数据,然后交由管道来处理。
项目管道。爬虫抽取出来的数据,就要交给管道来处理,我们可以编写自己的管道来清洗、验证和持久化数据。
下载器中间件。下载器中间件在下载器和scrapy引擎之间工作,我们可以利用下载器中间件在将页面交给爬虫之前做一些事情。scrapy内置了一些下载器中间件,这些中间件将在后面介绍。
爬虫中间件。爬虫中间件可以让我们控制爬虫的回调等等。在后面会介绍一些内置的爬虫中间件。
14.scrapy创建爬虫命令
打开cmd 输入 cd Desktop然后回车
输入scrapy startproject +***(以网站com之前的名字命名)+Spider
15.spider文件每句代码什么意思
_init _ :初始化的意思
items: 用于存储爬虫数据
middlewares: 用于处理爬虫签的请求和响应,例如设置headers
pipelines :管道文件,在存爬虫数据之前,会先穿过管道
settings : 全局爬虫的配置文件,一般用设置反反爬虫相关措施,数据库配置
16.scrapy运行爬虫的命令是什么
from scrapy import cmdline
cmdline.execute([‘scrapy’,‘crawl’,‘ivsky’])
17.框内的解析方法如何互相调用
18.方法间如何传值
meta = {}
19.setting中常见的配置有哪些