爬虫
柏林墙
这个作者很懒,什么都没留下…
展开
-
浏览器标识User-Agent反爬虫可直接复制到代码中
# Opera"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60","Opera/8.0 (Windows NT 5.1; U; en)","Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera原创 2020-07-12 08:46:56 · 616 阅读 · 0 评论 -
KeyError: ‘Spider not found: itcast‘ 运行scrapy crawl时报错原因总结
1. 由于运行scrapy genspider所在目录不在生成的爬虫项目文件夹下错误重现# 1. 创建爬虫项目C:\scrapy>scrapy startproject myFirstSpider# 2. 生成爬虫文件,注意此时并没有切换路径,不在项目目录下C:scrapy>scrapy genspider CSDN csdn.net# 3. 运行爬虫文件C:\scrapy>scrapy crawl CSDN# 4. 此时报错为,当出现Unknown comman原创 2020-07-08 08:38:16 · 1557 阅读 · 0 评论 -
python中时间模块用的时间戳在爬虫中的使用
>>> import time# 1. 默认 10位整数+6位微秒 时间戳>>> time.time()1593919251.152604# 2. 毫秒级时间戳的 13位整数>>> int(time.time() * 1000)1593919281753# 3. 将字符串转化为时间戳# '2020-7-5 11:23:05' --> 1593919385>>> str_time = '2020-7-5 11原创 2020-07-05 11:58:51 · 1475 阅读 · 0 评论 -
13_js分析之通过python对有道翻译功能实现
思路js中关键代码:先通过三种js定位法找打js文件在network中通过发送账号密码的js报文中initiaor查询根据发送的数据中关键字在全部报文中search在登录按钮上的Element中Event listener 查找点击按钮触发的js请求然后通过对请求post的form表单数据中关键字在js文件中寻找定位到关键代码分析关键代码找出form表单数据不断变化的数据来源,模拟求出该数值即可里面常涉及时间戳,json代码分析模拟,hash处理代码import r.原创 2020-07-05 11:18:51 · 143 阅读 · 0 评论 -
12_python中对于hashlib的md5,sha1使用
# 0. 导入hashlib包import hashlibdata = '1111'# 1. 定义hash的md5方法对象,也可以定义sha1,sha256等encrp = hashlib.md5()# 2. 加载数据,但是需要编码为bytes类型,目前不接受str类型encrp.update(data.encode())# encrp.update(b'1111')# 3. 对hash后的数据输出,有多种格式# encrp.digest() bytes格式print(encr原创 2020-07-05 09:30:35 · 182 阅读 · 0 评论 -
11_人人网自动登录的js分析
1. js文件定位在network中通过发送账号密码的js报文中initiaor查询根据发送的数据中关键字在全部报文中search在登录按钮上的Element中Event listener 查找点击按钮触发的js请求2. 在python中执行js文件通过分析js文件,得出密码的加密过程,按照js文件的加密过程执行一次得出密码加密后数值,则可以将post的form表单数据写好,就可以实现登录。在python中执行js代码可以通过js2py模块,需要pip install js2py3. 登录原创 2020-07-04 22:45:06 · 227 阅读 · 0 评论 -
10_反爬的三种方法和解决方案
1. 反爬三个方向基于身份识别基于行为特征基于数据加密2. 身份识别的反爬及解决方案2.1 基于headers识别headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫2.1.1 通过headers中的User-Agent字段来反爬反爬原理:爬虫默认情况下没有User-Agent,而是使用模块默认设置解决方法:请求之前添加User-Agent即可;更好的方式是使用User-Agent池来解决(收集一堆User-Agent的方式,或者是随机生成User-原创 2020-07-04 09:53:08 · 2886 阅读 · 0 评论 -
9_通过selenium对斗鱼所有房间号、主播名、观看人数提取
from selenium import webdriverimport timeclass Douyu(object): def __init__(self): self.url = 'https://www.douyu.com/directory/all' self.driver = webdriver.Chrome() # self.data_list = [] def parse_data(self): # 保原创 2020-07-03 21:34:57 · 256 阅读 · 0 评论 -
08_selenium对应Chromedrive的基本使用
1. 安装selenium和Chromedrive1.1 安装seleniumpip install selenium 安装1.2 下载安装不同Chrome版本对应的Chromedrivehttps://npm.taobao.org/mirrors/chromedriver 下载对应接口然后拷贝到python的运行路径下,或者是一个win的全局变量PATH地址下即可测试:在cmd中输入chromedrive,有启动反应测试成功1.3 二者对应关系selenium是一个python的模块,里面原创 2020-07-02 22:33:42 · 660 阅读 · 0 评论 -
07_xpath使用案例之百度贴吧帖子名称和地址提取并保存为文本
import requestsfrom lxml import etreeclass TieBa(object): def __init__(self, name): self.url = 'https://tieba.baidu.com/f/good?kw=' + name self.headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWe原创 2020-07-01 21:50:01 · 333 阅读 · 0 评论 -
6. xml数据提取-xpath语法使用
1. xpath1.1 xpath helper插件在谷歌浏览器安装用以输入xpath语句对内容定位1.2 xpath 节点<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>原创 2020-06-29 22:30:21 · 236 阅读 · 0 评论 -
5. 数据提取-jsonpath模块使用
1. 安装使用第三方模块需要自行下载pip install jsonpath2. 语法对于网页中抓取的json文件import json进行转换json_dict = json.loads(json文件)引用模块中方法from jsonpath import jsonpath使用方法:json(json_dict, 'jsonpath语法规则字符串')语法字符串规则符号描述$根节点.子节点…任意节点*所有元素节点原创 2020-06-28 22:56:52 · 204 阅读 · 1 评论 -
4. 数据提取概述
1. html和xml区别HTML超文本标记语言侧重数据的显示XML可扩展标记语言侧重数据的传输2. 数据解析结构化语言jsonjson模块jsonpath模块xmlre模块正则lxml模块的xpath语法非结构化语言HTMLre模块正则lxml模块 xpath语法beautifulsoup的xpath、re、csspyquery的css...原创 2020-06-28 22:56:20 · 89 阅读 · 0 评论 -
2. requests请求的post请求实现爱词霸中英翻译案例
对爱词霸翻译的提取初始化属性:URL,headers,datarequests获取数据解析数据import requestsimport json # 对得到的json数据解析import sys # 通过终端输入参数class king(object): def __init__(self, word): self.url = 'http://fy.iciba.com/ajax.php?a=fy' self.headers = {原创 2020-06-27 22:23:56 · 225 阅读 · 0 评论 -
1. 爬虫基础requests模块的get请求
1. 基本流程graph TD A[Url-list]-->B[发送请求获取响应] B --> C[解析响应] C --> |提取数据|D[保存数据] C --> A2. HTTP协议2.1 爬虫关注的请求头和响应头请求头User-Agent 浏览器的信息Referer 页面跳转处Cookie 识别用户Host 请求目的地址Connection 保持长连接Upgrade-Insecure-Request原创 2020-06-27 17:57:29 · 504 阅读 · 0 评论