gecko

python爬虫入门 之 移动端数据的爬取

给你一囗甜甜゛ 提交于 2020-11-21 03:10:19
第七章 移动端数据的爬取 基于某一款抓包工具 : fiddler ,青花瓷 ,miteproxy 7.1 fiddler 基本配置 7.1.1fiddler简介和安装 什么是Fiddler? Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。 Fiddler安装 Fiddler下载地址: https://www.telerik.com/fiddler 傻瓜式安装,一键到底。Fiddler软件界面如图所示: 7.1.2手机APP抓包设置 Fiddler设置打开Fiddler软件,打开工具的设置。(Fiddler软件菜单栏:Tools->Options)在HTTPS中设置如下: 在Connections中设置如下 这里使用默认8888端口,当然也可以自己更改,但是注意不要与已经使用的端口冲突:Allow remote computers to connect:允许别的机器把请求发送到fiddler上来 安全证书下载 在电脑浏览器中输入地址: http://localhost:8888/ ,点击FiddlerRoot certificate

http请求报文格式和响应报文格式

落爺英雄遲暮 提交于 2020-10-28 07:54:01
超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与 服务器 建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应。   HTTP 请求报文   HTTP 请求报文由 请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示:   下面对请求报文格式进行简单的分析:   请求行:请求行由方法字段、URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;   ● GET:当客户端要从服务器中读取某个资源时,使用GET 方法 。GET 方法要求服务器将URL 定位的资源放在响应报文的部分,回 送给 客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。   ● POST:当客户端给服务器提供信息较多时可以使用POST 方法 ,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。 GET 一般用于获取/查询资源信息,POST

go 解析path

戏子无情 提交于 2020-10-28 00:03:27
使用库 https://github.com/antchfx/htmlquery package main import ( "fmt" "github.com/antchfx/htmlquery" "golang.org/x/net/html" "golang.org/x/net/html/charset" "net/http" ) func main() { url := "http://tool.yeves.cn" client := &http.Client{} req,err := http.NewRequest("GET",url,nil) if err != nil{ fmt.Println(err) } req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.2222") req.Header.Add("testet-sdfsdf","english") resp,err := client.Do(req) defer resp.Body.Close() r, err := charset.NewReader(resp.Body, resp

工具推荐-根据IP地址精确定位经纬度(永久免费)

蓝咒 提交于 2020-10-27 06:54:39
  今天小张由于业务需求,需要根据用户的访问ip精确定位用户的国家、城市、及经纬度等信息,从网上进行搜索,发现不少的网站,但几乎没有完全符合的,有个别符合的还需要花钱,大家也知道,现在是信息共享的时代,难道真没有免费的API接口可调用吗? 继续搜索,终于功夫 不负有心人,找到了,就是它,就是它 。先不急,先看代码吧。 import requests,traceback,logging,random from retry import retry user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 " "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1", "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 " "(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 " "(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", "Mozilla/5.0

Python 爬虫从入门到进阶之路(三)

拈花ヽ惹草 提交于 2020-10-27 05:37:09
之前的文章我们做了一个简单的例子爬取了百度首页的 html,本篇文章我们再来看一下 Get 和 Post 请求。 在说 Get 和 Post 请求之前,我们先来看一下 url 的编码和解码,我们在浏览器的链接里如果输入有中文的话,如: https://www.baidu.com/s?wd= 贴吧,那么浏览器会自动为我们编码成: https://www.baidu.com/s?wd=%E8%B4%B4%E5%90%A7 ,在 Python2.x 中我们需要使用 urllib 模块的 urlencode 方法,但我们在之前的文章已经说过之后的内容以 Python3.x 为主,所以我们就说一下 Python3.x 中的编码和解码。 在 Python3.x 中,我们需要引入 urllib.parse 模块,如下: 1 import urllib.parse 2 data= { " kw " : " 贴吧 " } 3 # 通过 urlencode() 方法,将字典键值对按URL编码转换,从而能被web服务器接受。 4 data = urllib.parse.urlencode(data) 5 print (data) # kw=%E8%B4%B4%E5%90%A7 6 # 通过 unquote() 方法,把 URL编码字符串,转换回原先字符串。 7 data = urllib.parse

nginx限制恶意IP处理方法

孤者浪人 提交于 2020-10-27 05:02:17
思考了几种方案,最终考虑使用ip黑名单的方式: 处理方法: 一、nginx黑名单方式: 1、过滤日志访问API接口的IP,统计每10分钟调用超过100次的IP,直接丢进nginx的访问黑名单 2、具体步骤: 编写shell脚本: 复制代码 vim /shell/nginx_cutaccesslog.sh #!/bin/bash log_path=/xxx/nginx/logs date= date -d "10 min ago" +%Y%m%d-%H:%M:%S nginxpid= cat ${log_path}/nginx.pid cd ${log_path} #过滤access.log中正常访问API接口并在10分钟(下面是日志切割,再做个定时任务每10分钟执行一次,就可以实现了)内访问量最高的30个IP,取值如果此IP访问量大于100次,则把此IP放入黑名单 cat access.log | grep sendCheckCode | grep -v 403 | awk '{print $2}'|sort|uniq -c | sort -k1 -n | tail -30 | awk '{if($1>100) print "deny "$2";"}' > ../conf/denyip.conf #日志切割,做定时任务,每10分钟执行一次 mv ${log_path}/access

手把手教你使用Python抓取QQ音乐数据(第三弹)

别等时光非礼了梦想. 提交于 2020-10-25 04:03:23
【一、项目目标】 通过 手把手教你使用Python抓取QQ音乐数据(第一弹) 我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 通过 手把手教你使用Python抓取QQ音乐数据(第二弹) 我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评。 此次我们在项目(二)的基础上获取更多评论并生成词云图,形成手把手教你使用Python抓取QQ音乐数据(第三弹)。 【二、需要的库】 主要涉及的库有:requests、json、wordcloud、jieba 如需更换词云图背景图片还需要numpy库和PIL库(pipinstall pillow) 【三、项目实现】 1.首先回顾一下,下面是项目(二)获取指定歌曲首页热评的代码; def get_comment(i): url_3 = ' https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg ' headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', /# 标记了请求从什么设备,什么浏览器上发出 } params = {'g

python爬虫爬取豆瓣电视剧数据

╄→尐↘猪︶ㄣ 提交于 2020-10-24 07:57:37
作为一个python小白,在下面的问题中出错: 1.因为豆瓣页面的数据加载涉及到异步加载,所以需要通过浏览器获取到真正的网页链接。 2.将字典转化为DataFrame以后写入.csv文件。DataFrame是一个表单一样的数据结构。 3.从网页获取的json数据的处理。 代码: import re import requests from bs4 import BeautifulSoup import time import random import string import logging import json import jsonpath import pandas as pd import pdb User_Agents = [ ' Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 ' , ' Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 ' , ' Mozilla/5.0 (compatible;

Dom树 CSS树 渲染树(render树) 规则、原理

巧了我就是萌 提交于 2020-10-22 10:41:42
  前端不可不学的浏览器渲染机制,阿里年年问,去一个栽一个。听说百度也在考这个,你还不准备学吗? 首先你要了解浏览器渲染的顺序:   1.构建dom 树   2.构建css 树   3.构建渲染树   4.节点布局   5.页面渲染 什么是dom 树?   浏览器将HTML解析成树形的数据结构,简称DOM。   DOM 是文档对象模型 (Document Object Model) 的缩写。它是 HTML 文档的对象表示,同时也是外部内容(例如 JavaScript)与 HTML 元素之间的接口。 解析树的根节点是Document对象。 那我们就可以这样操作 dom 树: < html > < head > < title > never-online'swebsite </ title > < script > functionchangedivText ( strText ) { varnodeRoot = document ; //这个是根结点 varnodeHTML = nodeRoot . childNodes [ 0 ] ; //这个是html结点 varnodeBody = nodeHTML . childNodes [ 1 ] ; //body结点 varnodeDiv = nodeBody . childNodes [ 0 ] ; //DIV结点

Nginx基础入门2

ぐ巨炮叔叔 提交于 2020-10-09 18:48:37
一、Nginx部署-yum 1、官网链接 http://www.nginx.org 2、Nginx版本类型 Mainline version: 主线版,即开发版 Stable version: 最新稳定版,生产环境上建议使用的版本 Legacy versions: 遗留的老版本的稳定版 3、配置yum源 4、安装 测试: 二、nginx配置文件 这个在前面的文章里面已经介绍过,这里不再重复介绍。 三、nginx编译参数 同上。 四、nginx基本参数 1、观察主配置文件 ① 分类 CoreModule 核心模块(进程数等) EventsModule 事件驱动模块(工作模式等) HttpCoreModule http内核模块 (文档程序类型,配置文件等) ② 模块功能 1、全局/核心块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义