python(利用python给知乎用户发消息)之错误 :No module named 'urllib.parse'()

原创 2018年04月16日 02:41:29

python(利用python给知乎用户发消息)之错误 :No module named ‘urllib.parse’()

说明:

1:先不讲错误,博主用两种工具来实现此次的目的。
2:第二种工具死活实现不了博主的目的。
3:博主先把第一种工具的结果如何实现先讲完。
4:最后再来解刨第二种工具的出现的错误以及解决方案。

心得:

之所以把心得放在最前面是博主怕亲爱的小伙伴们看不到博主这一天怎么过来的,真是一把辛酸泪。
博主之前感觉爬虫好玩,但是对于代码的理解都是片面的,如下面:

    def __init__(self, hash):
        # 初始化,用于提交参数(声明路径)
        self.url = "https://www.zhihu.com/api/v4/messages"
        # 提交的数据
        self.data = {'content': 'ceshi', 'receiver_hash': hash, 'type': 'common'}

        # 登录,账号名以及密码
        self.cookie = {
            'Cookie': 'aliyungf_tc=AQAAAE36BCOV6gIAhEH1toLAUkb8ESkm; _xsrf=f83abdc4-b707-400a-bda9-cf174c6eeacd; d_c0="APDg_8vacQ2PTilAweMO0Y6O8mYxJrMvxzA=|1523758957"; q_c1=1c1d28643a394a5499f9af5063475263|1523758957000|1523758957000; capsion_ticket="2|1:0|10:1523759093|14:capsion_ticket|44:M2FkMmM1YjBmODgxNDEzNWJhZjk4NTk1YjQxMjZkNGU=|d6ff90ee19a1a5e4e416840df21076dc4e93865384c7c50efbc0d3e042fcfebf"; _zap=7e3bc975-7637-4669-a5ab-dce27f9ae9d2; z_c0="2|1:0|10:1523759121|4:z_c0|92:Mi4xMXFkM0J3QUFBQUFBOE9EX3k5cHhEU1lBQUFCZ0FsVk5FUWJBV3dCNmFQNGowWW5OM1JCeVRBNk1mXzVsR2lhMWJn|1a8949d9488beec575984bd1e8386876dd0d0b42ae832fbd59076666be0bfeac"'}
        # 反扒措施
        self.header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}

什么self.url,self.data,self.cookie这些都是代表的啥意思呀,博主都是一知半解,为何要那么写呀,为何会是字典形式呀等等,最近喜得一本关于爬虫的书博主也在大概全面的,努力的了解。没想到第一个正式的爬虫居然这么打击博主,真的是倒霉到如来佛祖那了。
博主可谓真的是一个强迫症患者且遇到问题都想自己能尽可能的搞出来,老实说是为了追求虚荣心,感觉自己搞出来就特别的自豪,有那么一种满足感吧,所以就不太问别人(但是博主可不是一个封闭,死板的人奥,做人要有技巧的做人,哈哈我也不知道该如何清楚的定义这句话,脑子瞬间就冒出来啦,感觉特别适合博主的性格吧,哈哈)对于今天如标题所示的错误,让博主真的是发疯了一天,从早晨早早的到实验室编译就报错,我靠,一开始还好,以为问题不大,可能就是导包的问题,或者就是模块安装与否的问题。结果是第一个问题,但是博主就是傻逼的搞了一天,我自己都心累,写到这我忽然想起了我的刻意练习可能真的是白看了,我能想到导包问题为何针对导包问题思考那,答案是博主可能真的太依赖于百度来解决自己的问题了吧。。。结果百度也没给出了所以然,这就又牵扯出了博主的搜索有用信息的能力可能还有待提高,,,总之今天一天真是的一个让博主发疯,,,原计划看能多看点东西嘛,毕竟只有周末的实验室才是博主最喜欢的,安安静静几乎一个人,学累了玩两把赛车要的就是这种美滋滋,结果,,, 博主在学习这一块有点急功近利,贪心的成分。。。希望能以后计划有度,好好利用有效时间。忽然词穷啦,那就进入正题吧!!!


目的:

利用python给知乎用户发送私信

第一种运行环境:

Spyder

步骤:

1:在Spyder中创建一个项目
如下图所示创建自己的项目,名字和路径都是安装个人意愿奥

这里写图片描述

创建项目结果:
以下就是博主创建的项目:zhihu_ceshi
这里写图片描述

2:创建zhihu_ceshi.py
代码:

# coding=utf-8
"""
@author: jiajiknag
程序功能: 知乎发送私信
"""
import requests
class ZhiHuSend(object):
    """初始化,构造函数"""
    def __init__(self, hash):
        # 初始化,用于提交参数(声明路径)
        self.url = "https://www.zhihu.com/api/v4/messages"
        # 提交的数据
        self.data ={
            'content': 'ceshi',
            'receiver_hash': hash,# 哈希码
            'type': 'common'
        }

        # 登录,账号名以及密码
        self.cookie = {'Cookie':'aliyungf_tc=AQAAAE36BCOV6gIAhEH1toLAUkb8ESkm; _xsrf=f83abdc4-b707-400a-bda9-cf174c6eeacd; d_c0="APDg_8vacQ2PTilAweMO0Y6O8mYxJrMvxzA=|1523758957"; q_c1=1c1d28643a394a5499f9af5063475263|1523758957000|1523758957000; capsion_ticket="2|1:0|10:1523759093|14:capsion_ticket|44:M2FkMmM1YjBmODgxNDEzNWJhZjk4NTk1YjQxMjZkNGU=|d6ff90ee19a1a5e4e416840df21076dc4e93865384c7c50efbc0d3e042fcfebf"; _zap=7e3bc975-7637-4669-a5ab-dce27f9ae9d2; z_c0="2|1:0|10:1523759121|4:z_c0|92:Mi4xMXFkM0J3QUFBQUFBOE9EX3k5cHhEU1lBQUFCZ0FsVk5FUWJBV3dCNmFQNGowWW5OM1JCeVRBNk1mXzVsR2lhMWJn|1a8949d9488beec575984bd1e8386876dd0d0b42ae832fbd59076666be0bfeac"'}
        # 反扒措施
        self.header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}


    # self是实例化对象
    # 发送数据
    def Send(self):
        """发送数据"""
        # post()方法提交参数, application/json, 返回数据
        self.html = requests.post(self.url, json=self.data,cookies=self.cookie, headers = self.header)
        print(self.html)
        # 类似于状态码
        print(self.html.status_code)
        # 返回文件信息
        print(self.html.json())

if __name__ =="__main__":
    # 当这个文件[zhihuSend.py]被别人导入的时候,程序只会执行if上面的内容
    # 当这个文件[zhihuSend.py]主动的执行的时候,程序才会执行if后面的语句
    # __name__其实是一个关键字,这个关键字在一般的情况下等于__main__,但是再被其他模块导入的时候等于模块名
    """按行读取文件"""
    with open(r'D:\yanjiusheng\Anaconda\SpyderWorkStation\zhihu_ceshi\666.txt') as ff:
        for hash in ff:
            hash = hash.strip('\n')
            # 实例化对象
            zhihusend = ZhiHuSend(hash)
            # 显示调用方式
            zhihusend.Send()

说明:
1. 此次实现的功能是给知乎发私信,所以打开知乎(前提自己已经登陆自己的账号),随便选择一个网友打开到他的界面。
2. 博主用的是火狐浏览器(没用谷歌是因为打开我们需要的是英文的看起来不方便,哈哈),如下图所示打开调试器(快捷键:F12)

这里写图片描述

3.代码中需要的参数信息获取如下所示

这里写图片描述

3:创建666.txt文件存储在项目文件夹下和zhihu_ceshi.py 文件同目录下
作用:666.txt是来用存储哈希码值的,直接将哈希码值赋值粘贴到里面保存即可

这里写图片描述

4:结果

这里写图片描述

5:最后
到了这里说明一个完整的利用python给知乎发私信算是完成啦,接下来看第二种工具的实现


目的:

利用python给知乎用户发送私信

第二种运行环境:

pycharm

步骤:

1:博主首先就是一个项目下创建了一个文件夹下

这里写图片描述

2:结果
如下错误
这里写图片描述

3:解决方案:
a:方案一 博主查了自己的urllib。
这里写图片描述

这里博主真的是煞费苦心的不知道花了多少时间在urllib上找问题,为何怎么做就不能使步骤1成功运行那?想过导包的问题,思路一直放在pip install urllib上,结果也是撞墙,继续在多功能记事本中又开始测试,结果又出现了如下的错误,

'latin-1' codec can't encode character u'\u017e' in position 11: ordinal not in range(256)

搞了一波又没搞定!!!

b:方案二
在pycharm中博主一直是在一个项目中创建文件夹来实现自己的各种目的,到了这里说明一下,最后能实现博主的目的也是靠了同学的帮助,到晚上了不行今天就得搞出来不然睡觉都不舒服,所以让同学提点了一下,,,果不其然确实奏效。

建议:
1. 重新创建一个项目:demo
2. 在新建的项目demo下在进行代码操作

这里写图片描述
3. 运行,结果依旧是原来完美的错误,对! 我又开始傻逼啦,对于这个错误同学的解释:没有导入包,所以就没索引,,,,为啥没有那,包不都该下载的下载下来了吗?不合逻辑呀,,,然而又在pycharm中的setting中开始z造作啦!!!
4. 在setting中的造作如下所示
缺什么包点击+号输入添加就行。。。到了这里我能直说:工具的环境配置有问题,啊,博主难受的同时又引发了另一个问题:那为何不能在自己常用的项目下创建且在setting中的缺啥加啥那???

这里写图片描述
5. 设置完setting后,运行代码

这里写图片描述

好吧,到了这里就结束啦,
总结:
自己的pycharm中的环境变量的问题,博主对这个概念真的是一脸懵逼呀,好吧,心塞,睡觉!!!

【Python】第二周Python基础(下)

-
  • 1970年01月01日 08:00

import urllib.parse ImportError: No module named parse

import urllib.parse ImportError: No module named parse错误原因:出现这个错误,是因为我使用的Python版本是2.7,根据Python 2.x u...
  • testcs_dn
  • testcs_dn
  • 2017-02-19 20:20:56
  • 9647

python网络入门:urllib.request模块和urllib.urllib.parse模块

Urllib.parse模块urljoin方法, urljoin(base, url, allow_fragments=True) Join a base URL and a possib...
  • u011538954
  • u011538954
  • 2016-05-08 14:48:18
  • 7933

一个超级傻的错误--import urllib.request 报错

在看了网上的爬虫教程后,我信心满满的写了一个名为urllib.py的文件想试验一下网上的方法,内容很简单:import urllib.requesturl = "http://www.baidu.co...
  • ajinglingmofashi
  • ajinglingmofashi
  • 2016-12-13 16:33:36
  • 10307

ImportError: No module named _jythonlib

使用jython过程中遇到的一些问题,解决问题的流程:这里写链接内容 附jython文档:Chapter 10: Jython and Java Integration 应用场景: ja...
  • u013863751
  • u013863751
  • 2017-06-28 10:30:24
  • 419

Python2.7与Python3.3不同而产生的错误

今天刚开始学习Python就遇到了很多error,主要是我用的是Python3.3,而大多数教程都是Python 2.x。所以把自己目前遇到的一些主要错误记下来,留着以后纠错时,可能会用到吧。呵呵我记...
  • u011037149
  • u011037149
  • 2013-10-13 18:12:36
  • 3008

完美解决Python各种no module named "XX"问题

在腾讯云上玩Django,但总是遇到no module name “django.core.wsgi”,等问题。在django的 error.log中也提示是 no module…..,但是 本地 p...
  • qq951127336
  • qq951127336
  • 2018-03-03 14:06:21
  • 1080

python 3.3.2报错:No module named 'urllib2' 解决方法

python代码:import urllib2 response = urllib2.urlopen('http://www.baidu.com/') html = response.read...
  • hacker_Lees
  • hacker_Lees
  • 2017-09-06 14:50:15
  • 2174

python3.5[No module named 'encodings']报错

2015年12月份遇见的问题, 报错详细信息: 执行外部程序任务tmk_mail_use_cdr_h命令python /etl11/vgop_ac_gp/src/mail/mk/tmk_mail_...
  • learning_oracle_lh
  • learning_oracle_lh
  • 2016-01-08 17:29:55
  • 4913

python提示ImportError: No module named Image

把import Image替换成"import PIL.Image",凡是用到Image的都修改成PIL.Image(前提你的安装pillow(PIL))...
  • weixin_40013463
  • weixin_40013463
  • 2018-03-02 16:06:39
  • 350
收藏助手
不良信息举报
您举报文章:python(利用python给知乎用户发消息)之错误 :No module named 'urllib.parse'()
举报原因:
原因补充:

(最多只允许输入30个字)