KHTML

抓取猫眼部分信息

陌路散爱 提交于 2020-11-22 06:31:28
import requests import re import json from multiprocessing import Pool def get_one_page(url): header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', } res = requests.get(url,headers=header) if res.status_code == 200: return res.text else: return None def parse_html(html): html.replace('\n','') pattern = ('<i class="board-index.*?">(. ?)</i>. ?<img data-src="(. ?)". ?</a>. ?<a href. ?>(. ?)</a>. ?<p class="star"(. ?)</p>. ?releasetime">(. ?)</p>. ?integer">(. ?)</i>. ?fraction">(.*?)</i>') items = re.findall

【Python3爬虫】网易云音乐歌单下载

╄→尐↘猪︶ㄣ 提交于 2020-11-21 05:44:37
一、目标:   下载网易云音乐热门歌单 二、用到的模块:   requests,multiprocessing,re。 三、步骤:    (1)页面分析:首先打开网易云音乐,选择热门歌单,可以看到以下歌单列表,然后打开开发者工具    因此我们需要请求的url就是https://music.163.com/discover/playlist,然后用requests.get()方法请求页面,对于返回的结果,用正则表达式进行解析,得到歌单名字和歌单id,解析的正则表达式如下: res = requests.get(url, headers=headers) data = re.findall('<a title="(.*?)" href="/playlist\?id=(\d+)" class="msk"></a>', res.text)      (2)得到歌单名字和歌单id后,构造歌单的url,然后模仿步骤(1)可以得到歌曲名字和歌曲id,解析的正则表达式如下: re.findall(r'<a href="/song\?id=(\d+)">(.*?)</a>', res.text)   再得到歌曲id后,构造歌曲的url,然后用requests.get().content方法下载歌曲,歌曲的url构造方法如下: "http://music.163.com/song/media

什么?你还没女朋友?教你如何借助Python俘获女孩子芳心!

风格不统一 提交于 2020-11-21 05:02:21
天气降温,感情却升温了? 上午刚到公司,就收到小Q发来的灵魂拷问: “Q仔!要不然下午请个假!我带你去精神科看看!?”我实在忍不了,脱口而出。 话音未落,前排的运营小花回头看向小Q,莞尔一笑,百媚横生。 这个闷骚小伙子什么时候勾搭上运营一枝花了?我正要追问,小Q看穿了我的意图,故作正经:“咳咳!工作了工作了!” 一大早喂我这么一碗狗粮还让我专心工作?你们以为不说我就没办法找到线索? 伟大的哲学家亚里士少德曾经说过“一段感情的开始,往往是通过朋友圈体现的”。我点开了小花的朋友圈,刷啊刷啊刷,终于在半个月前的一条朋友圈里发现了端倪。 小Q这个闷葫芦,竟然每天下班前发一封天气关心邮件来俘获芳心!脑回路真是奇清! 怪不得今天一上班就和我说Python像是个月老,牵着他们的情愫!因为这些用Python来实现并自动化,可以说是分分钟的事儿。我这个动手狂魔决定来复现一下,顺便搞搞事情。 整个过程只涉及到爬取天气和发送邮件,可以说一气呵成。 在敲代码的过程中,我意识到最难的部分,是想到把两者结合,并编辑土味关怀发送给目标用户了。毕竟都9102年了,虽然天气预报随手可看,但真正有几个人每天会关注呢? 要拿到天气的数据, www.tianqi.com 这个网址比较适合,所有数据都可以直接在源代码中拿到,天气小可爱长这个样子: 爬取只需简单伪装headers,就可以快乐的定位到所有想拿的数据了

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

手把手教你使用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;