今天试着用自己的爬虫代码爬取了知乎【同性恋】话题下的所有精华问题的用户位置信息
代码:

__author__ = 'yang'
# -*- coding: utf-8 -*-import configparser
import requests
import time
import re
import stringdef curTime():curTime = time.strftime('%Y-%m-%d %H:%M:%S')timeStr = '\n<!--'+curTime+'-->'return timeStrdef loginInfo(): #获取用户名,密码filename = 'test.ini' #test.ini中有知乎账号、密码及浏览器cookiesconfig = configparser.ConfigParser()config.read(filename)cookies = config.items('COOKIES')cookies = dict(cookies)username = config.get("USER","username")password = config.get("USER","password")#print usernamereturn username,password,cookiesdef create_session():username, password, cookies = loginInfo()session = requests.session()login_data = {'email':username, 'password':password}header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36','Host': 'www.zhihu.com','Referer': 'http://www.zhihu.com/'}r = session.post('http://www.zhihu.com/login/email', data=login_data, headers=header)if r.json()['r'] == 1:print 'Login Failed, reason is:',for m in r.json()['data']:print r.json()['data'][m]print 'Use cookies to login...'has_cookies = Falsefor key in cookies:if key != '__name__' and cookies[key] != '':has_cookies = Truebreakif has_cookies is False:raise ValueError('请填写config.ini文件中的cookies项')else:r = session.get('http://www.zhihu.com/login/email', cookies=cookies)with open('login.html', 'w') as fp:fp.write(r.content)return session, cookiesdef writeFile(name,content):with open(name,'w') as fp:fp.write(content)if __name__ == '__main__':requests_session, requests_cookies = create_session()with open('tong.html','w') as fp:fp.write(curTime())for page in range(0,49):url = 'https://www.zhihu.com/topic/19552984/top-answers?'+str(page)content = requests_session.get(url, cookies=requests_cookies).contentf = file('tong.html', 'a+')f.write(content)#f = file('url.html', 'a+')#f.write(curTime())#匹配问题连接字符串str = re.compile(r'<a class="question_link.*?href="(.*?)">')with open('url.html') as file:content = file.read()questionLinks = str.findall(content)print (questionLinks)with open('resultLink.html','w') as fp:fp.write('\n'.join(questionLinks))with open('resultLink.html') as fp:questionLinks = fp.readlines()#获取用户链接usrRegex = re.compile(r'<a class="author-link.*?href="(.*?)">')for link in questionLinks:num = link.strip()url = 'https://www.zhihu.com'+str(num)page = requests_session.get(url,cookies=requests_cookies).content #获取页面内容#过滤用户链接usrLinks = usrRegex.findall(page)f = file('usrLinks.html','a+')f.write('\n'.join(usrLinks))with open('usrLinks.html') as fp:ls = fp.readlines()links = []for link in ls:links.append(link.strip())#print len(links)links = list(set(links))#print len(links)#获取用户个人页面locationRegex = re.compile(r'<span class="location item.*?title="(.*?)"')locations = []for link in links:url = 'https://www.zhihu.com'+str(link)page = requests_session.get(url, cookies=requests_cookies).content#获取位置信息#locations.append(locationRegex.findall(page))location = locationRegex.findall(page)+'\n'if (location):f = file('locations.html','a+')f.write('\n'.join(location))

python爬取知乎话题的精华问题下的用户信息相关推荐

  1. python爬取知乎话题广场_知乎一共有多少个话题?

    上图可知,它是通过请求POST接口来取得知乎话题数据,接口信息: 其中topic_id指大分类下的id,offset是指偏移量,指每次执行next方法加载的子话题数量,hash_id可以为空我们暂时忽 ...

  2. python爬取知乎话题广场_用于爬取知乎某个话题下的精华问题中所有回答的爬虫...

    思路 我的整个算法的思路还是很简单的,文字版步骤如下: 1.通过话题广场进入某个话题的页面,避免了登陆注册页面的验证,查找到对应要爬取的话题,从 url 中得到话题id 2.该页面的所有资源采用了延迟 ...

  3. python爬取知乎话题_python爬取知乎话题图片

    前言 什么是网络爬虫(也叫网络蜘蛛)?简单来说,是一种用来自动浏览万维网程序或脚本(网络爬虫的典型应用就是我们所熟知的搜索引擎).既然如此,那么我们也可以写一个程序,用来自动浏览或者获取网页上的信息. ...

  4. python爬取知乎话题:你见过最搞笑的视频有哪些?下的所有视频

    ①打开知乎话题 https://www.zhihu.com/question/21086211 ②打开开发者工具,构造Request url,和上次的爬取照片思路一样(https://blog.csd ...

  5. python爬取知乎话题:日常穿jk制服是怎样一种体验?下的所有图片

    ''' 第一次尝试python爬取图片,请多指正 回答者的答案单独存放一个文件夹 ''' from urllib import request import math import requests ...

  6. python爬取知乎话题广场_学习python爬虫---爬虫实践:爬取B站排行榜2(爬取全部分类排行榜、利用pygal库作图)...

    前面我们爬取了B站上全站的排行榜,详细见:魏勇:学习python爬虫---爬虫实践:爬取B站排行榜​zhuanlan.zhihu.com 一.爬取全部分类排行榜 我们观察一下B站排行榜,那里还有番剧排 ...

  7. python爬虫实战(一)--爬取知乎话题图片

    原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...

  8. 如何用python爬取数据_如何使用python爬取知乎数据并做简单分析

    原标题:如何使用python爬取知乎数据并做简单分析 一.使用的技术栈: 爬虫:python27 +requests+json+bs4+time 分析工具: ELK套件 开发工具:pycharm 数据 ...

  9. python爬取知乎热榜了解时事

    python爬取知乎热榜了解时事 需求 ​ 知乎热榜是我们了解时事的一个重要途径,但是如果我们每天没有那么多时间来刷知乎,但是还是想要了解知乎热榜的话,我们该怎么办呢?在这里,我想到了通过知乎爬虫的手 ...

最新文章

  1. SAP RETAIL 根据Allocation Rule去创建分配表
  2. 好好学python·集合
  3. GDCM:处理DICOM文件的示例
  4. PHP经验总结 - 开发技巧分享
  5. 构造方法的调用顺序和成员变量的初始化时机以及动态绑定
  6. 谷歌能否赶上「元宇宙」这趟快车?
  7. MySQL中OR和AND的区别是什么____MySQL中or与in
  8. flutter闪屏过渡动画,闪光占位动画
  9. 【Elasticsearch】Elasticsearch通过reroute api 重新分配分片
  10. LeetCode 145 二叉树的后序遍历(非递归)
  11. JSP和Servlet相同点和不同点?
  12. EXP-00056遇到Oracle错误1455问题解决办法
  13. [RK3399][Android7.1] adb remount失败
  14. 【OR】YALMIP安装及使用
  15. python气象卫星云图解析_零基础python效率提升资源汇总
  16. shell清空数据库表
  17. Java在一定范围随机生成经纬度
  18. java 415_@RequestBody接受参数报415错误
  19. lol超长id注册手把手教程 第一期
  20. 工业企业能耗在线监测系统建设应用及研究

热门文章

  1. 实例分析,4种三极管固定式偏置电路
  2. 图半监督极限学习机用于分类
  3. CAS:2471983-20-5,FAPI,成纤维细胞激活蛋白抑制剂
  4. 不爱运动对人有什么样的坏处呢?
  5. 小学六年级计算机知识点总结怎么写,小学六年级信息技术教学工作总结范文(精选4篇)...
  6. java 验证邮箱_Java实现邮箱验证码
  7. java和javascript区别_java和javascript之间有什么区别
  8. 金银花和胖大海能一起泡水喝的吗?
  9. 关于 typedef cosnt * 的解释问题
  10. 淘淘商城宜立方商城第二天,关于查询商品,浏览器页面无法显示