问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python爬取知乎首页问题

发布网友 发布时间:2022-04-28 19:50

我来回答

2个回答

懂视网 时间:2022-05-10 14:16

鉴于之前用python写爬虫,帮运营人员抓取过京东的商品品牌以及分类,这次也是用python来搞简单的抓取单页面版,后期再补充哈。

#-*- coding: UTF-8 -*- 
import requests
import sys
from bs4 import BeautifulSoup

#------知乎答案收集----------

#获取网页body里的内容
def get_content(url , data = None):
 header={
 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
 'Accept-Encoding': 'gzip, deflate, sdch',
 'Accept-Language': 'zh-CN,zh;q=0.8',
 'Connection': 'keep-alive',
 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'
 }

 req = requests.get(url, headers=header)
 req.encoding = 'utf-8'
 bs = BeautifulSoup(req.text, "html.parser") # 创建BeautifulSoup对象
 body = bs.body # 获取body部分
 return body

#获取问题标题
def get_title(html_text):
 data = html_text.find('span', {'class': 'zm-editable-content'})
 return data.string.encode('utf-8')

#获取问题内容
def get_question_content(html_text):
 data = html_text.find('div', {'class': 'zm-editable-content'})
 if data.string is None:
  out = '';
  for datastring in data.strings:
  out = out + datastring.encode('utf-8')
  print '内容:
' + out
 else:
  print '内容:
' + data.string.encode('utf-8')

#获取点赞数
def get_answer_agree(body):
 agree = body.find('span',{'class': 'count'})
 print '点赞数:' + agree.string.encode('utf-8') + '
'

#获取答案
def get_response(html_text):
 response = html_text.find_all('div', {'class': 'zh-summary summary clearfix'})
 for index in range(len(response)):
  #获取标签
  answerhref = response[index].find('a', {'class': 'toggle-expand'})
  if not(answerhref['href'].startswith('javascript')):
  url = 'http://www.zhihu.com/' + answerhref['href']
  print url
  body = get_content(url)
  get_answer_agree(body)
  answer = body.find('div', {'class': 'zm-editable-content clearfix'})
  if answer.string is None:
   out = '';
   for datastring in answer.strings:
   out = out + '
' + datastring.encode('utf-8')
   print out
  else:
   print answer.string.encode('utf-8')


html_text = get_content('https://www.zhihu.com/question/43879769')
title = get_title(html_text)
print "标题:
" + title + '
'
questiondata = get_question_content(html_text)
print '
'
data = get_response(html_text)

输出结果:

22.png

热心网友 时间:2022-05-10 11:24

唔 可能是你没有登录成功啊

因为发现-知乎这个链接是不用登录就能抓的

但是这个知乎没有登录不行

看了下知乎登录不是这么简单的 你没有登录成功

追问个人中心的东西都已经获取了,所以是登陆成功的

追答

嗯。。。获得了个人中心的什么。。。登录不是这个知乎么。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 如何用python写一个从题库自动匹配的答题脚本? 科贝乐早教好吗? 父母离异,赡养义务 离婚子女赡养老人法律是怎么规定的 离婚子女的赡养义务如何确定 父母离婚了赡养义务如何确定 12360高铁票查询晋江到毕节的高铁多少钱? 父母离婚子女赡养费怎么定? 父母离婚,赡养费怎么算 12360火车票app下载安装宁城到赤峰的高铁车次查询 父母离婚赡养义务 12360高铁票查询信阳到兰州火车票? 父母离婚后子女是否有赡养义务 12360上买了高铁票今天退了还能不能在买? 父母离婚后子女有赡养义务吗? 12360高铁票查询深圳北至汉口站车次查询? 润百颜驻颜丰盈眼霜淡化眼周皱纹的效果好吗? 注射润百颜效果好吗?广州注射润百颜医院哪家好? 手机控制消杀病毒细菌的紫外线消毒灯 如何对生活用品进行紫外线消毒,米粒生活的紫外线消毒盒都能放哪些生活用品? 三洋空调出E04告警是怎么回事啊,怎么解决? 格力空调风挡选择04和04各代表什么功能? 海尔空调温度显示04还一直闪是怎么回事? 大金空调显示04大金空调报故障E6是什么问题? 三菱电机柜机空调04代码 宇通客车空调故障04 重汽豪瀚空调04故障码是什么意思? 宇通客车空调故障码04 压缩机一个工作 大金空调显示04 空调开了显示04怎么回事 word里面表格没有光标怎样输入 在word中怎样能把打字的光标移在表格中的需要打勾的方框中 求- -各个主流视频网站是否支持高清,上传高清码率多少... 教做菜网站 讯飞双屏翻译机的双屏设计有什么优点,实际使用起来怎么样? 科大讯飞翻译机看文献可吗 电脑上那个把鼠标放到网页里的英文单词上就会出现翻译,是装了什么软件么? 请问这是怎么回事,我在微博提现余额让输入支付宝支付密码输入了结果这样,密码是对的怎么回事求解!!! word中的超链接怎么使用 怎样使用WORD超级链接?