python抓取百度搜索结果

# -*- coding: utf-8 -*-
#!/usr/bin/env python
#抓取百度搜索结果
import sys
import re 
import urllib2

from BeautifulSoup import BeautifulSoup

def search(key):
        search_url='http://www.baidu.com/s?wd=key&rsv_bp=0&rsv_spt=3&rsv_n=2&inputT=6391' 
        req=urllib2.urlopen(search_url.replace('key',key)) 
        result=[]  
        #循环抓取10页结果进行解析
        for count in range(10):
                html=req.read()
                soup=BeautifulSoup(html)
    
                file = open("result.txt",'a')
                
                content  = soup.findAll('table',id=re.compile("\d"))
                num = len(content)
                
                for i in range(num):
                    #先解析出来内容
                    p_str  = content[i].find('a')
                    #提取关键字
                    if p_str.em:
                 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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. 有没有什么方法可以在抓取时避免频繁访问被封禁?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值