selenium爬取qq空间,requests爬取雪球网数据
一、爬取qq空间好友动态数据
# 爬取qq空间好友状态信息(说说,好友名称),并屏蔽广告
from selenium import webdriver
from time import sleep
from lxml import etree # 自动操作浏览器
bro = webdriver.Chrome(executable_path=r'D:\爬虫+数据分析\tools\chromedriver.exe')
bro.get('https://qzone.qq.com/')
sleep(3)
#注意:如果想要通过find系列函数去定位某一个iframe标签下的子标签的话,一定要使用如下操作:
bro.switch_to.frame('login_frame')#参数表示的是iframe标签的id属性值,,ifram是子标签 bro.find_element_by_id('switcher_plogin').click() # 单击id为switcher_plogin的页面标签,即点击账号密码登录
sleep(3) # 等待数据加载 # 自动输入用户名,密码登录空间
bro.find_element_by_id('u').send_keys('')
bro.find_element_by_id('p').send_keys('qq密码')
sleep(3)
bro.find_element_by_id('login_button').click()
sleep(3) # 点击‘个人中心’,进到好友动态
bro.find_element_by_id('aIcenter').click()
sleep(3)
# 拖动滚轮,一次一屏;加载动态数据
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
# 获取浏览器当前的页面源码数据
page_text = bro.page_source # 数据解析
tree = etree.HTML(page_text) li_list = tree.xpath('//ul[@id="feed_friend_list"]/li')
for li in li_list:
user_name_list = li.xpath(".//div[@class='user-info']/div[@class='f-nick']/a/text()")
text_list = li.xpath('.//div[@class="f-info"]/text()|.//div[@class="f-info qz_info_cut"]//text()') # 需要展开的说说类名不同
for tu in zip(user_name_list,text_list):
text = '\n'.join(tu)
print(text+'\n\n') bro.close() # 关闭浏览器
二、爬取雪球网的新闻的标题、作者、来源等
import requests
import json
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36',
}
url_index = 'https://xueqiu.com'
url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=-1&count=10&category=-1' # 创建一个session对象
session = requests.Session()
#使用session进行请求的发送:获取cookie,且将cookie保存到session中
session.get(url_index,headers=headers) # 获取json响应数据
json_dic = session.get(url=url,headers=headers).json()
for dic in json_dic["list"]:
data = dic["data"]
data_dic = json.loads(data)
title = data_dic["title"]
# description = data_dic["description"]
column = dic["column"]
author = data_dic["user"]["screen_name"]
print(f"标题:{title}\n来源:{column}\n作者:{author}\n")
selenium爬取qq空间,requests爬取雪球网数据的更多相关文章
- python+selenium+requests爬取qq空间相册时遇到的问题及解决思路
最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...
- 通过Scrapy抓取QQ空间
毕业设计题目就是用Scrapy抓取QQ空间的数据,最近毕业设计弄完了,来总结以下: 首先是模拟登录的问题: 由于Tencent对模拟登录比较讨厌,各个防备,而本人能力有限,所以做的最简单的,手动登录后 ...
- 使用Python+Selenium模拟登录QQ空间
使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...
- selenium iframe 定位 qq空间说说
selenium iframe 定位 qq空间说说
- 用python爬取QQ空间
好久没写博文了,最近捣鼓了一下python,好像有点上瘾了,感觉python比js厉害好多,但是接触不久,只看了<[大家网]Python基础教程(第2版)[www.TopSage.com]> ...
- Python_小林的爬取QQ空间相册图片链接程序
前言 昨天看见某人的空间有上传了XXXX个头像,然后我就想着下载回来[所以本质上这是一个头像下载程序],但是一个个另存为太浪费时间了,上网搜索有没有现成的工具,居然要注册码,还卖45一套.你们的良心也 ...
- Python爬虫实战:使用Selenium抓取QQ空间好友说说
前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...
- selenium firefox 提取qq空间相册链接
环境: selenium-java 3.9.1 firefox 57.0 geckodriver 0.19.1 1.大概的思路就是模拟用户点击行为,关于滚动条的问题,我是模拟下拉箭头,否则只能每个相册 ...
- python selenium爬取QQ空间方法
from selenium import webdriver import time # 打开浏览器 dr = webdriver.Chrome() # 打开某个网址 dr.get('https:// ...
随机推荐
- Scala基础:数组(Array)、映射(Map)、元组(Tuple)、集合(List)
数组 package com.zy.scala object ArrayDemo { def main(args: Array[String]): Unit = { //定长数组 val arr1 = ...
- 文件后缀与mime类型对应表
//文档文件类型的 .ai application/postscript .eps application/postscript .exe application/octet-stream ...
- OCFS2 Fencing
OCFS2 FencingPosted on February 8, 2011 by Abdulhameed Basha I am very excited to start writing my e ...
- VMware安装完后,没有虚拟网卡
1 问题描述: 1.1 windows10首次安装VMware,或者非首次安装VMware时,安装后,没有出现如下图所示的虚拟网卡: 1.2 Xshell或者SecureCRT 或者editplus等 ...
- hadoop分布式集群搭建前期准备(centos7)
那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...
- 用Spring实现文件上传(CommonsMultipartFile)!
2012-02-16 18:10:26| 分类: 计算机--JAVA EE-|字号 订阅 spring中的文件上传实际比较容易1.页面中<html> <body> & ...
- 实践作业3:白盒测试----junit的难点DAY11.
本次白盒测试 需要独立完成整个项目和工具的配置安装运行操作,并编写.运行测试脚本,并完成实验的一些小细节等等. 首先,导入Junit测试框架所需的Jar包 然后编写测试脚本,为.java运行程序,见打 ...
- 1056 IMMEDIATE DECODABILITY
题目链接: http://poj.org/problem?id=1056 题意: 给定编码集, 判断它是否为可解码(没有任何一个编码是其他编码的前缀). 分析: 简单题目, 遍历一遍即可, 只需判断两 ...
- EXCEL 导入 R 的几种方法 R—readr和readxl包
导入Excel数据至R语言的几种方法 如有如下Excel数据源,如何将数据导入R语言呢?今天主要来介绍几种常见的方法: 一.使用剪贴板,然后使用read.table函数: 首先选择Excel中的数据源 ...
- 借助LVS+Keepalived实现负载均衡(转)
出处:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...