如题,下载知乎制定问题回答者的头像
用jsoup实现解析
package info.frady;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* 下载zhihu问题回答者的头像
* @author frady
*
*/
public class ZhihuDown {
public static void main(String[] args) throws Exception {
Map<String,String> imgMap=new HashMap<String,String>();
String url="http://www.zhihu.com/question/36412655";//要抓取的问题
Document documnet=Jsoup.connect(url).timeout(100 * 1000).get();
Elements es1 = documnet.select("div.zu-main-content");
for (Element e1 : es1) {
Elements es2 = e1.select("h3.zm-item-answer-author-wrap");
for (Element e2 : es2) {
Elements es3 = e2.select("img.zm-list-avatar");//找到头像的部分了
for (Element e3 : es3) {
String imgUrl=e3.attr("src");
imgUrl=imgUrl.substring(imgUrl.lastIndexOf("/")).substring(1);
imgMap.put(imgUrl, imgUrl);//将头像地址存放到map中,可以防止默认头像被下载多次
}
}
}
for (Entry e : imgMap.entrySet()) {
System.out.println("download..."+e.getKey().toString());
download("http://pic1.zhimg.com/"+e.getKey().toString(), e.getKey().toString(),"d:\\image\\");
}
}
public static void download(String urlString, String filename,String savePath) throws Exception {
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();
//设置请求超时为5s
con.setConnectTimeout(5*1000);
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
File sf=new File(savePath);
if(!sf.exists()){
sf.mkdirs();
}
OutputStream os = new FileOutputStream(sf.getPath()+"\\"+filename);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完毕,关闭所有链接
os.close();
is.close();
}
}
jsoup下载地址:http://jsoup.org/download
分享到:
相关推荐
1. 尊重用户隐私:在下载和使用他人头像时,必须确保遵循知乎的使用协议,尊重用户隐私,避免侵犯版权或造成不必要的法律问题。 2. 动态加载:部分网站的内容可能是动态加载的,需要处理JavaScript或者使用如...
批量下载知乎某个问题下指定数量答案的图片,代码较为简陋
总之,Python爬虫实现对知乎问题回答的抓取,涉及到了HTTP请求、HTML解析、数据提取、异常处理等多个环节,是一个典型的网络数据获取和处理的过程。通过这个项目,你可以深入学习Python在网络爬虫领域的应用,并提升...
知乎问题回答
知乎爬虫:爬取知乎某一问题下的所有回答(回答数小于800左右) 基本思路 将question id 进行遍历,存入文件,对问题进行过滤后爬取需要的回答 目前项目爬取的机制是将滚动条拉取到页面底端,然后一次性抓取所有的...
"从零开始做运营:知乎互联网领域回答者、积分忠诚度计划、网" 本书主要介绍了知乎互联网领域中的运营知识,其中重点讲解了如何从零开始做好运营。作者介绍了知乎互联网领域的发展历程和现状,并详细阐述了知乎...
在本实践教程中,我们将深入探讨如何利用Python进行网络数据的爬取、采集与可视化,特别是在处理知乎问题的回答上。Python作为一门强大的编程语言,因其简洁的语法和丰富的库支持,成为了网络爬虫领域的首选工具。...
### 知识点二:爬取知乎问题和回答 #### 2.1 技术栈介绍 - **Requests库**:用于发起HTTP请求。 - **BeautifulSoup库**:用于解析HTML文档。 - **正则表达式(re库)**:辅助提取特定格式的信息。 #### 2.2 实现...
### 知乎回答多线程爬虫 **模式** 1. 单问题爬取模式 2. 相似问题爬取模式 **输出** **文件名** 问题题目 **文件内容** 1. 问题 2. 问题id 3. 回答者昵称 4. 回答者空间id 5. 回答者id 6. 回答者内容 ...
用户在回答问题时经常上传图片以辅助说明,这些图片对于研究者或爱好者来说具有很高的价值。传统的手动下载方式效率低下,而“知乎图片下载器”则能高效地完成这项任务。 使用这个工具时,用户需要有知乎问题的URL...
zhihu-answers简介fork 自 的 的winter的这次commit版本只允许下载备份自己的答案,我这个版本在它的基础上进行了简单的修改,支持下载其他用户的答案用法打开Chrome -> 进入知乎个人主页 -> 审查元素 -> Console ->...
萧井陌知乎回答备份,很有用
综上所述,这个"仿知乎问题系统php+html模版"是一个适合PHP初学者的实践项目,涵盖了Web开发中的基本要素,包括后端数据处理(PHP)、前端展示(HTML/CSS/JS)以及用户互动功能(如提问、回答和上传)。通过学习和...
知乎人工回答则具有高质量和可靠性,但存在信息不全和主观性等问题。 在内容分析方面,ChatGPT机器回答具有外部特征、内部特征、情感与认知等方面的特点,但也存在回答Quality的差异和虚假信息的风险。知乎人工回答...
例如,从一个问题的页面出发,可以爬取问题的描述、回答、评论,以及回答者的个人信息。 “知乎爬虫”这一标签表明这是一个专门针对知乎设计的爬虫,它可能有特定的适配和优化,以应对知乎网站特有的数据结构和反爬...
知乎助手是一款可以将知乎上内容转换为Epub电子书格式的工具。它的开发思维出发点主要是为了帮助知乎用户,提供更加方便的阅读方式及文章收藏保存,即便是知乎上的文章删除了,大家收藏的内容依旧存在。软件由作者@...
在爬取知乎时,通常会通过问题ID来定位特定问题的页面。 接着,我们需要解析返回的网页内容。BeautifulSoup或lxml库是HTML解析的利器,它们可以解析HTML文档,提取我们需要的数据,比如回答的文本、用户信息以及...
在本项目中,"知乎问题回答信息爬取.zip" 是一个包含了使用Python编写的爬虫项目的压缩包。这个项目的主要目标是从知乎网站上抓取问题及其相关回答的信息,以供数据分析或研究使用。以下是该项目涉及的一些核心知识...
5. **数据分析**:在进行用户行为分析时,真实头像可以提供更接近现实的环境,帮助研究者理解用户在不同头像下的行为模式。 6. **营销与广告**:在制作模拟用户反馈或展示用户故事的营销材料时,真实头像可以增强...
### 知乎回答多线程爬虫 **模式** 1. 单问题爬取模式 2. 相似问题爬取模式 **输出** **文件名** 问题题目 **文件内容** 1. 问题 2. 问题id 3. 回答者昵称 4. 回答者空间id 5. 回答者id 6. 回答者内容 ...