爬虫抓取遇到的小问题

查看网页源代码或者使用firebug定位时可以看到想要抓取的内容,等到用Jsoup解析时却什么都没有,可以在解析之前模拟浏览器操作。

 //模拟浏览器操作
  URL url1 = null;
  URLConnection uc = null;
  InputStream in = null;
  BufferedReader br = null;
  String ss = null;
  url1 = new URL(url);
  uc = url1.openConnection();
  uc.setRequestProperty("User-Agent",
          "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");
  // õ
  in = uc.getInputStream();
  br = new BufferedReader(new InputStreamReader(in, "utf-8"));
  String temp = "";
  StringBuilder sbs = new StringBuilder();
  while ((temp = br.readLine()) != null) {
      sbs.append(temp + "\n");
  }
  ss = sbs.toString();

//  System.out.println(ss);
  Document doc = Jsoup.parse(ss, "", new org.jsoup.parser.Parser(new XmlTreeBuilder()));


转载于:https://my.oschina.net/u/2551519/blog/603812

Python爬虫抓取百度图库(Baidu Image)通常涉及使用网络爬虫技术来访问和下载图片。由于百度图库的内容受版权保护,直接抓取可能会违反服务条款,因此在编写爬虫时需要遵守相关规定并尽可能尊重原作者权益。以下是一个基本的步骤概述: 1. **获取HTML内容**:使用Python的requests库发送GET请求到百度图片的搜索结果页,然后解析返回的HTML内容。 ```python import requests from bs4 import BeautifulSoup url = "https://image.baidu.com/search/index?word={your_search_keyword}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 2. **定位图片链接**:通过分析HTML结构找到图片的URL。这可能涉及到查找特定的class、id或属性,具体取决于百度图库的页面结构。 ```python img_tags = soup.find_all('img', {'class': 'IIL img_bj'}) image_links = [img['src'] for img in img_tags] ``` 3. **处理反爬机制**:百度可能会有防爬机制,如IP限制、验证码等。为了应对,可能需要设置代理、使用User-Agent模拟浏览器、添加延时等。 4. **下载图片**:使用Python的`urllib.request`库下载图片,可以将图片保存到本地文件。 ```python import os import urllib.request for link in image_links: response = urllib.request.urlopen(link) img_data = response.read() filename = f"{os.path.basename(link)}" with open(filename, 'wb') as file: file.write(img_data) ``` 5. **存储和管理**:将抓取的图片保存到指定目录,可以考虑使用文件夹按照关键字或者其他方式进行分类。 **相关问题--:** 1. 百度图库如何防止爬虫抓取? 2. 如何处理网页请求时遇到的403 Forbidden错误? 3. 有没有什么方法可以在抓取时避免频繁访问被封禁?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值