egrcc / zhihu-python Goto Github PK
View Code? Open in Web Editor NEW获取知乎内容信息,包括问题,答案,用户,收藏夹信息
License: MIT License
获取知乎内容信息,包括问题,答案,用户,收藏夹信息
License: MIT License
我在获取某个用户答案时,发现如果该问题描述中含有反斜杠 /,写文件时就会报错!
f = open(os.path.join(os.path.join(os.getcwd(), "text"), file_name), "wt")
IOError: [Errno 2] No such file or directory: '/home/liutong/zhihu-python/text/\xe6\x9c\x8d\xe7\x94\xa8\xe6\x8a\x97\xe6\x8a\x91\xe9\x83\x81\xe8\x8d\xaf/\xe6\x8a\x97\xe7\x84\xa6\xe8\x99\x91\xe8\x8d\xaf\xe6\x98\xaf\xe4\xbb\x80\xe4\xb9\x88\xe4\xbd\x93\xe9\xaa\x8c\xef\xbc\x9f\xe5\x96\xb5\xe5\x96\xb5\xe4\xb9\x88\xe4\xb9\x88\xe4\xb9\x88\xe7\x9a\x84\xe5\x9b\x9e\xe7\xad\x94.txt'
我的系统是ubuntu 14.04
设answers = user.get_answers()
在
for answer in answers:
voters = answer.get_voters()
中,执行
upvote = answer.get_upvote()
是正常的。
但是
for voter in voters:
upvoter.append(voter.user_url())
则出现错误。
附上代码:
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 04 22:22:07 2016
@author: TsingJyujing
"""
from zhihu import Question
from zhihu import Answer
from zhihu import User
from zhihu import Collection
user_url = "https://www.zhihu.com/people/qing-yu-ying"
user = User(user_url)
answers = user.get_answers()
upvoter = []
upgende = []
userids = []
for answer in answers:
voters = answer.get_voters()
try:
upvote = answer.get_upvote()
print "Upvote times:",upvote
for voter in voters:
upvoter.append(voter.user_url())
upgende.append(voter.get_gender())
uid = voter.get_user_id()
userids.append(uid)
print len(upvoter),':',upvoter[-1]
except:
print "Error"
解决方案:
第902行修改为:
data_aid = soup.find("div", class_="entry-body")["data-aid"]
auth.py 96行 os.system("open %s &" % image_name )
应该改成os.system(" %s " % image_name )
windows下直接输入文件名就会以默认程序打开
一开始登录时,发现一直报错:
SUCCES: 登录失败!
WARN: unknown error.
打印具体错误信息为:
{
'error': {
'message': None,
'code': 100003,
'data': {
u'account': u'\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u90ae\u7bb1'
#请输入正确的邮箱
}
}
}
经浏览器确认登录,邮箱密码没有问题。
当对应邮箱的密码输错时,同样报上面的错误,很奇怪。
@egrcc 同样的环境(ubuntu14.04 python2.76 firefox),用户名密码cookies都写了但是怎么都是Login Failed 请填写验证码。。
好像知乎服务器限制offset为一万以内?超出一万直接返回空,建议代码里做下限制
line 878, in get_topics
yield topic_list[j].find("strong").string.encode("utf-8")
IndexError: list index out of range
当输入的密码不正确的时候,显示
SUCCES: 登录失败 !
WARN: unknow error.
此时,提交表单的返回值为:
{
“r": 1,
"errcode": 100005,
"data" : {"password": incorrect_password}
"msg": null
}
当某问题下回答包含自己的回答的时候。
Question.get_all_answers()貌似不能抓到自己的回答。
并且当自己的回答排在最后的时候会出错
url="http://www.zhihu.com/question/xxxxx"
Q=Question(url)
for i in Q.get_all_answers():
print i.answer_url
Traceback (most recent call last):
File "/home/kehao/Documents/zhihu-python-master/test.py", line 37, in <module>
get_a_question()
File "/home/kehao/Documents/zhihu-python-master/test.py", line 28, in get_a_question
for i in Q.get_all_answers():
File "/home/kehao/Documents/zhihu-python-master/zhihu.py", line 188, in get_all_answers
count = soup.find_all("span", class_="count")[j].string
IndexError: list index out of range
用户失效后重新登录报错:
WARN:网络故障
INFO: 正在加载配置文件 ...
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/��Ӱ/���ݽṹ���㷨/auth.py", line 241, in
login()
File "C:/Users/Administrator/PycharmProjects/��Ӱ/���ݽṹ���㷨/auth.py", line 213, in login
form_data = build_form(account, password)
File "C:/Users/Administrator/PycharmProjects/��Ӱ/���ݽṹ���㷨/auth.py", line 115, in build_form
form['_xsrf'] = search_xsrf()
File "C:/Users/Administrator/PycharmProjects/��Ӱ/���ݽṹ���㷨/auth.py", line 101, in search_xsrf
raise NetworkError(u"验证码请求失败")
main.NetworkError
ERROR: 网络异常
这个是网络异常还是登录失败了
错误报告如下,应该是知乎换了格式了
Traceback (most recent call last):
File "./crawl.py", line 19, in
print "\nQuestion " + ": " + answer.get_question().get_title() + "\n"
File "filepath/zhihu.py", line 1070, in get_question
question_link = soup.find("h2", class_="zm-item-title zm-editable-content").a
AttributeError: 'NoneType' object has no attribute 'a'
大大你好,我在执行auth.py的时候按图片输入验证码后一直提示验证码错误,是知乎改验证方式了吗
大概在获取 800 多名用户之后,脚本就会自动停止,也没有报错,后台运行状态似乎是正常的:
root 10371 0.9 10.4 273236 52232 ? Sl 09:35 6:23 python my_programe.py
Hi,
First of all, really appreciate for all the effort to make such a fantastic python crawl for ZhiHu.
But there are some error when I tried to run test.py after cloned.
I made the following to changes to get it to work.
Then everything works fine.
Thanks again for such a brilliant work
Cheers.
我是项目作者,最近忙毕业论文,除一些紧急情况外,issue 和 pull requests 要过段时间才会处理。望各位理解。
加在user类里。。最好把我写的代码改一下再加进去,或者再加个topic类啥的
python
def get_topics_num(self):
if self.user_url == None:
print "I'm anonymous user."
return 0
else:
if self.soup == None:
self.parser()
soup = self.soup
try:
topics_num = soup.find_all("div", class_="zm-profile-side-section-title")[1].strong.string.encode("utf-8")
I=''
for i in topics_num:
if i.isdigit():
I=I+i
topics_num=int(I)
return topics_num
except:
print self.get_user_id()
return 0
def get_topics(self):
if self.user_url == None:
print "I'm anonymous user."
return
else:
topics_num = self.get_topics_num()
print topics_num
if topics_num == 0:
return ""
else:
for i in xrange((topics_num - 1) / 20 + 1):
topics_url = self.user_url + "/topics"
r = requests.get(topics_url)
lovetopic=""
soup = BeautifulSoup(r.content)
for topics in soup.find_all("div", class_="zm-profile-section-item zg-clear"):
name =topics.find("strong").string.encode("utf-8")
lovetopic=lovetopic+name+"|"
return lovetopic
在项目目录下执行auth.py 显示登陆成功
在自己的项目代码中import zhihu显示未登录
再次运行auth.py显示登陆过了
Hi Lujun Zhao,
你的有一次commit中的config.ini中泄露了账户名和密码,希望不会给你造成麻烦。
python auth.py
无法登录 ~
求解~
thx~
from zhihu import Question
url = "http://www.zhihu.com/question/35564122"
question = Question(url)
answers = question.get_all_answers()
for answer in answers:
answer.to_txt()
answer.to_md()
跑到一半提示越界了。
seed =Question("https://www.zhihu.com/question/26746768")
allTheAnswers = [i for i in seed.get_all_answers()]
Traceback (most recent call last):
File "", line 1, in
File "zhihu.py", line 188, in get_all_answers
if soup.find_all("div", class_="zm-item-answer")[j].find("span", class_="count") == None:
IndexError: list index out of range
`def search_xsrf():
"""
:rtype: object
"""
url = "http://www.zhihu.com/"
r = requests.get(url, verify=False)
if int(r.status_code) != 200:
raise NetworkError(u"验证码请求失败")`
这里一直返回500,错误就是验证码请求失败
似乎是一个bug,请您再确认一下。获取点赞人数失败,或者数字不对。
运行test.py
1。 如果某问题下只有一个回答,则
upvote = answer.get_upvote() 运行失败,报错。
比如说 answer_url = "https://www.zhihu.com/question/38214680/answer/79481584" ,
报错信息:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
File "test.py", line 79, in answer_test
upvote = answer.get_upvote()
File "~/zhihu-python-master/zhihu.py", line 757, in get_upvote
count = soup.find("span", class_="count").string
AttributeError: 'NoneType' object has no attribute 'string'
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2。 如果该问题下有多个回答,则获得的赞数不是这个回答的,而是紧挨着它的下一个回答的。
比如,answer_url = "https://www.zhihu.com/question/33567660/answer/79138286"
结果输出:
++++++++++++++++++++++++++++++++++++++++++++
**为什么不拍一部《伟大的抗日战争》呢?--石头布的回答.txt
**为什么不拍一部《伟大的抗日战争》呢?--石头布的回答.md
<zhihu.Question instance at 0x17fc950>
**为什么不拍一部《伟大的抗日战争》呢?
<zhihu.User instance at 0xbdfc68>
<generator object get_voters at 0xbde0f0>
石头布
529 <---- 是下一个回答的赞数。
14537
++++++++++++++++++++++++++++++++++++++++++++
其中 529 是下一个回答的赞数。
个人建议,登录可以用requests.Session()做,这样都不必输入验证码,还是挺方便的
_xsrf 可以在登录页面中解析出来
伪代码:
s = requests.Session()
post_data = {'username':'','password':''}
post_data['_xsrf'] = _xsrf
post_data['remember_me'] = 'true'
login_rspn = self.s.post(LOGIN_URL,headers=HEADERS,data=post_data,timeout=10,verify=False)
之后用s中就会保存登录信息了
用s.get()发情求就行
执行 pip install requests
时,报错:
root@iZ23totlue9Z:~/mine/zhihu-python# pip install requests
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 246, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
requirement_set.prepare_files(finder)
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 345, in prepare_files
functools.partial(self._prepare_file, finder))
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 290, in _walk_req_to_install
more_reqs = handler(req_to_install)
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 415, in _prepare_file
req_to_install, finder)
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 366, in _check_skip_installed
req_to_install.check_if_exists()
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 986, in check_if_exists
self.satisfied_by = pkg_resources.get_distribution(self.req)
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 533, in get_distribution
dist = get_provider(dist)
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 413, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 934, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 811, in resolve
env = Environment(self.entries)
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 991, in __init__
self.scan(search_path)
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1021, in scan
self.add(dist)
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1037, in add
if self.can_add(dist) and dist.has_version():
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2742, in has_version
self.version
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2550, in version
for line in self._get_metadata(self.PKG_INFO):
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2594, in _get_metadata
for line in self.get_metadata_lines(name):
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1990, in get_metadata_lines
return yield_lines(self.get_metadata(name))
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1984, in get_metadata
with open(self.path,'rU') as f:
IOError: [Errno 2] No such file or directory: '/usr/lib/python2.7/dist-packages/setuptools.egg-info'
qid = '27099248'
q = Question('https://www.zhihu.com/question/'+qid)
A = [i for i in q.get_all_answers()]
这个bug并不是对每个问题都出现,只有少部分,比如上面这个qid,才会出现
256 soup = BeautifulSoup(self.soup.encode("utf-8"))
257 print "j",j
--> 258 answer_soup = BeautifulSoup(answer_list[j])
259
260 if answer_soup.find("div", class_="zm-editable-content clearfix") == None:
IndexError: list index out of range
我对于258行前后加了输出来观察,发现在i=1时,answer_list长度只有16,而min(answers_num - i * 20, 20) =20,所以越界了
看起来像是soap没有能取回剩下的答案。
如果将for j in xrange(min(answers_num - i * 20, 20)): 改为 for j in xrange(len(answer_list)):
那么i=1这一个循环可以通过,
但i=2时 answer_list长度就是0
title = soup.find("h2", class_="zm-item-title").string.encode("utf-8").replace("\n", "")
AttributeError: 'NoneType' object has no attribute 'string'
这回应该不是我安装的问题啦
from zhihu import Question
url = "http://www.zhihu.com/question/29862735"
question = Question(url)
answers = question.get_all_answers()
for answer in answers:
answer.to_txt()
answer.to_md()
root@AY1407131602375Z:~/zhihu-python# python test001.py
Login Failed, reason is:
请填写验证码
Use cookies
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--喻长大的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--喻长大的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--海天的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--海天的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--mu peng的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--mu peng的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--desire caution的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--desire caution的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--清风浅的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--清风浅的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--吴名士的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--吴名士的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--程啸的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--程啸的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--meggie huo的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--meggie huo的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--左牵黄右擎苍的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--左牵黄右擎苍的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--张赞的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--张赞的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--卢百万的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--卢百万的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Jack Nee的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Jack Nee的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--张萌萌blingbling的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--张萌萌blingbling的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--章子晏的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--章子晏的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--鱼吞舟的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--鱼吞舟的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--王粤北的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--王粤北的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--苏昕的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--苏昕的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--William的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--William的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--姜委员长的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--姜委员长的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Richard L的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Richard L的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--周如南的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--周如南的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--此人已失控的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--此人已失控的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--山羊月的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--山羊月的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--路加的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--路加的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--姚泽云的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--姚泽云的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--零崎月光的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--零崎月光的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--胡杨的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--胡杨的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--周大明白的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--周大明白的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--送赞干不的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--送赞干不的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--废了完了算了的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--废了完了算了的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--飞面福音的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--飞面福音的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--克里斯的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--克里斯的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--杨怀斌的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--杨怀斌的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Roland Xu的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Roland Xu的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--很卡的哇伊叔的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--很卡的哇伊叔的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--于经文的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--于经文的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--你们啊就想的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--你们啊就想的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--匿名用户的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--匿名用户的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--yoco的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--yoco的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--云宇的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--云宇的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--富丽的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--富丽的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--凤红邪的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--凤红邪的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--李炜的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--李炜的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--匿名用户的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--匿名用户的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Parasession的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Parasession的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--海小呆的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--海小呆的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Chinito超强的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Chinito超强的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Rice Naomi的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--Rice Naomi的回答.md
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--黄武鹏的回答.txt
为什么没看见神和神迹,还会有 20 亿基督徒,近 40 亿人信仰上帝?--黄武鹏的回答.md
Traceback (most recent call last):
File "test001.py", line 6, in <module>
for answer in answers:
File "/root/zhihu-python/zhihu.py", line 248, in get_all_answers
answer = soup.find_all("div", class_=" zm-editable-content clearfix")[j]
IndexError: list index out of range
C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py:838: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/security.html
InsecureRequestWarning)
WARN: 网络故障
ERROR: 网络异常
Traceback (most recent call last):
File "C:/Users/Administrator/Downloads/zhihu-python-master/zhihu-python-master/auth.py", line 240, in
login(account="马赛克@qq.com", password="马赛克")
File "C:/Users/Administrator/Downloads/zhihu-python-master/zhihu-python-master/auth.py", line 213, in login
form_data = build_form(account, password)
File "C:/Users/Administrator/Downloads/zhihu-python-master/zhihu-python-master/auth.py", line 115, in build_form
form['_xsrf'] = search_xsrf()
File "C:/Users/Administrator/Downloads/zhihu-python-master/zhihu-python-master/auth.py", line 101, in search_xsrf
raise NetworkError(u"验证码请求失败")
main.NetworkError
我在试用这个程序的时候,在config.ini里输入了自己的邮箱和密码,但是为什么总是显示登录失败?
貌似我的soup不对也不知道为啥
from zhihu import Question
url = "http://www.zhihu.com/question/24269892"
question = Question(url)
print(question)
answers = question.get_all_answers()
{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Vary': 'Accept-Encoding', 'Server': 'nnws/1.7.3.7', 'Connection': 'keep-alive', 'ETag': _', 'Date': 'Sat, 25 Jun 2016 00:27:57 GMT', 'X-Req-ID':_******, 'Content-Type': 'text/html'}
这个好像不能过验证码这关?
yield User(user_url_list[j].a["href"], user_url_list[j].a.string.encode("utf-8")) IndexError: list index out of range
我在win7,64bit,python2.7.10下运行,遇到汉字的时候都是乱码。。。
raceback (most recent call last):
File "auth.py", line 231, in <module>
login()
File "auth.py", line 214, in login
result = upload_form(form_data)
File "auth.py", line 137, in upload_form
r = requests.post(url, data=form, headers=headers)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 497, in post
return self.request('POST', url, data=data, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 378, in send
▽
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='www.zhihu.com', port=80): Max retries exceeded with url: /login/email (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
question.get_top_i_answers() 和 question.get_all_answers() 都只能获得10 个回答了,测试了几个问题,包括test 中的 http://www.zhihu.com/question/24269892
`url = "http://www.zhihu.com/question/24269892"
question = Question(url)
print question.get_answers_num()
q=question.get_top_i_answers(20)
for i in q:
print i`
`<zhihu.Answer instance at 0x10441a1b8>
<zhihu.Answer instance at 0x115b378c0>
<zhihu.Answer instance at 0x1177319e0>
<zhihu.Answer instance at 0x1150dab00>
<zhihu.Answer instance at 0x117833b90>
<zhihu.Answer instance at 0x11587d368>
<zhihu.Answer instance at 0x1159a6e18>
<zhihu.Answer instance at 0x11698bf80>
<zhihu.Answer instance at 0x115614c68>
IndexError Traceback (most recent call last)
in ()
4 print question.get_answers_num()
5 q=question.get_top_i_answers(20)
----> 6 for i in q:
7 print i
/Users/traveltao/Desktop/zhihu-python-master/zhihu.py in get_top_i_answers(self, n)
460 j = 0
461 answers = self.get_all_answers()
--> 462 for answer in answers:
463 j = j + 1
464 if j > n:
/Users/traveltao/Desktop/zhihu-python-master/zhihu.py in get_all_answers(self)
342
343 is_my_answer = False
--> 344 if soup.find_all("div", class_="zm-item-answer")[j].find("span", class_="count") == None:
345 my_answer_count += 1
346 is_my_answer = True
IndexError: list index out of range `
我试着用了你们的API获取follow我的知乎人的followers 人数 大部分都运行挺好的 但爬有些人时候 会出现如下错误 我看get_followers_num的原码。。觉得没问题啊 不是很理解
Error in get_followers_num
followers_num = int(soup.find("div", class_="zm-profile-side-following zg-clear")
AttributeError: 'NoneType' object has no attribute 'find_all'
代码如下
if __name__ == '__main__':
user_url = "https://www.zhihu.com/people/BravoMaooo"
user = User(user_url)
user.get_followers_num()
followers = user.get_followers()
for follower in followers:
try:
print(follower.get_followers_num())
except Exception:
print('there is an error')
print(Exception)
print(follower.get_user_id())
那个出错用户的知乎链接 https://www.zhihu.com/people/KellenWang
谢谢指教
File "run.py", line 7, in
answer.to_txt()
File "/Users/zhanghe/PycharmProjects/spider/zhihu-python/zhihu.py", line 795, in to_txt
content = self.get_content()
File "/Users/zhanghe/PycharmProjects/spider/zhihu-python/zhihu.py", line 779, in get_content
soup.body.append(answer)
File "/Users/zhanghe/PycharmProjects/spider/venv/lib/python2.7/site-packages/bs4/element.py", line 366, in append
self.insert(len(self.contents), tag)
File "/Users/zhanghe/PycharmProjects/spider/venv/lib/python2.7/site-packages/bs4/element.py", line 300, in insert
raise ValueError("Cannot insert None into a tag.")
ValueError: Cannot insert None into a tag.
INFO: 正在加载配置文件 ...
INFO: 提取XSRF 代码失败
INFO: 正在调用外部程序渲染验证码 ...
INFO: Command: xdg-open verify.gif &
请输入验证码: EPY3
ERROR: 网络异常
Traceback (most recent call last):
File "auth.py", line 249, in <module>
login()
File "auth.py", line 228, in login
result = upload_form(form_data)
File "auth.py", line 146, in upload_form
raise NetworkError(u"表单上传失败!")
__main__.NetworkError
我是根据配置文件登录,输入验证码后,这里一直返回403,另外我已经在auth.py中所有requests.get添加了headers.
r = s.post('http://www.zhihu.com/login', data = login_data, headers = header)
得到的是
{u'msg': {u'captcha': u'\u8bf7\u586b\u5199\u9a8c\u8bc1\u7801'}, u'r': 1, u'errcode': 269}
那些unicode的意思是“请填写验证码”,所以现在无法完成最开始的登录,不知道如何解决?谢谢!
当我想获取知乎用户活动信息时,在登录状态下使用post方法向http://www.zhihu.com/people/yunshu/activities 后台提交start和_xsrf表单字段后,结果响应返回403,而在非登录条件下,能够获取用户前十条信息,请问,如何处理能够获取正常的JSon数据?(也即是如何获取用户更多的最新状态数据?)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.