`
TimerBin
  • 浏览: 361085 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python 抓取百度搜索名称和路径

阅读更多

python 新手笔记:利用python,根据搜索关键字,抓取其结果的名称和路径。

 

一、百度搜索参数介绍

pn :抓取第几页内容

cl :搜索的类型 3 为网页搜索 2为新闻搜索

wd :搜索关键字

rn  :需要搜索多少条结果

 

详情可参阅:http://blog.sina.com.cn/s/blog_3e28c8a50102v0ck.html

 

二、定义pthon函数

# coding: UTF-8
import urllib.request 
import urllib.parse
import re

# 查询名称   查询条数
def findBaiduUrlList(searchName,number):
    #定义百度搜索请求URL
    url="http://www.baidu.com/s?pn=0&cl=3&rn="+str(number)
    #将中文进行URL编码
    url = url +"&wd="+urllib.parse.quote(searchName)
    #发起request请求,并获取返回结果
    response = urllib.request.urlopen(url)
    #将返回结果进行转换成UTF-8转码
    html = response.read().decode('utf-8')
    #定义截取字符串正则表达式
    splitPattern = re.compile(r'<h3 \D*">')
    requestList = re.split(splitPattern,html)
    
    myUrl=[]
    for c in requestList:
        #清楚换行和前后空格
        c=trim(c)
        if c.startswith('<a') :
            #定义返回结果
            urlObj = ['','']
            urlPattern = re.compile(r'http://www.baidu.com/link.{0,300}target="_blank"')
            urlsMatch = urlPattern.search(c) 
            if urlsMatch: 
                urlObj[1]= trims(urlsMatch.group())            
            
            namePattern = re.compile(r'target="_blank"\s*>.{0,40}</a>')
            nameMatch = namePattern.search(c) 
            if nameMatch: 
                urlObj[0] = trims(nameMatch.group())
            
            myUrl.append(urlObj)
            
        else:
            c = ''
    return myUrl
        
#清除无用字符信息
def trims(str):
    str = str.strip('target="_blank"')
    str = str.replace('<em>','').replace('</em>','').replace('</a>','')
    str = str.replace('>','').replace('"','').replace(' ','').replace('	','')
    return trim(str)
#清除换行和前后空格
def trim(str):
    str = str.replace('\n','').strip()
    return str

   

   python正则表达式可参阅:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

 

三、调用代码

myUrl = findBaiduUrlList('timerbin',1)

for c in myUrl:
    print(c)

 

四、输出结果

    ['返回链接名称','链接地址']

['TimerBin的博客-ITeye技术网站', 'http://www.baidu.com/link?url=Rvj1VAmkb6527AEXIMQnSKSRFvy4jT0BAYnHjw3Gu4npAccEysMnyRi0fj3Ziwqr']

 

 

 

 

分享到:
评论

相关推荐

    python百度地图商家爬虫

    "Python百度地图商家爬虫"项目就是利用Python编程语言来抓取百度地图上的商家信息,以便进行数据分析或构建自己的数据库。这个项目涉及到的主要知识点包括Python的基础语法、网络请求库、解析HTML或JSON数据、数据...

    python 学习视频

    ##### 2.1 Python抓取花椒直播主播信息 - **知识点概述**:介绍如何使用Python爬虫技术抓取花椒直播网站上的主播信息。 - **关键内容**: - 使用requests库获取网页源码; - 使用BeautifulSoup解析HTML文档; - ...

    python爬虫爬取企查查公司工商信息

    爬取企查查网站上公司的工商信息,路径大家根据自己情况自行修改,然后再在工程路径下创建个company.txt,里面输入想要爬取的公司名,就会生成该公司的工商信息网页。

    基于Flask框架 爬取百度文库的python web 项目.zip

    在本项目中,Python不仅仅用于编写Web应用,还用于编写爬虫代码,以抓取百度文库中的数据。这通常涉及到requests库(用于发送HTTP请求)、BeautifulSoup或lxml(用于解析HTML和XML文档)以及可能的异步处理库如...

    python爬取美女图片

    根据提供的文件内容,本文将详细解释如何利用Python进行网络爬虫操作来抓取特定网站上的美女图片,并且会对代码中的关键部分进行详细说明。 ### Python爬取美女图片 #### 一、准备工作 在开始之前,我们需要确保...

    使用python+spider+baiduMap实现过去全国的城市信息

    2. 百度地图API:百度地图提供了一系列的开发者接口,包括地点搜索、路径规划、地理编码等。通过调用这些API,我们可以获取到城市的经纬度、行政区域划分等地理信息,进一步结合地图展示城市位置。 3. 数据处理与...

    python爬取百度贴吧前1000页内容(requests库面向对象思想实现)

    Python作为一门广泛应用于数据处理和网络爬取的编程语言,利用其强大的第三方库,可以高效地抓取并处理网络上的数据。本文介绍了如何使用Python语言结合requests库,以面向对象的设计思想,实现对百度贴吧前1000页...

    百度文库文档免费下载软件

    关于“百度文库”,它是百度公司推出的一个在线文档分享平台,用户可以在上面上传、分享和搜索各种类型的文档,包括课件、报告、试题、书籍等。它为用户提供了一个方便的资源共享和学习交流的环境,但也因为其部分...

    爬虫实验报告.docx

    实验旨在让学生掌握网络爬虫的基本原理和操作,通过爬取东华理工大学官网首页的数据初步了解爬虫工作方式,然后进一步利用Python爬虫从百度地图开发者平台获取湖南省衡阳市的火锅店POI信息,最后通过ArcGIS进行数据...

    结构化爬虫——通过搜索抓取网站

    在本场景中,我们讨论的是如何通过搜索特定关键词来抓取网站的搜索结果,以百度搜索引擎为例。 首先,我们需要了解网站的URL结构。百度搜索结果的URL中,关键词通常体现在"word"参数上,例如`...

    OSpider开发者手册1

    - 按批处理文件批量抓取POI不返回任何值,而是直接将抓取结果保存至指定路径。 - 分城市获取POI总量成功时返回`pandas.DataFrame`,失败时返回`None`。 - 其余四个抓取函数成功时返回`geopandas.GeoDataFrame`,失败...

    py爬虫GushiwenSpider-master-new

    - **环境变量设置**:确保Python及其相关路径已添加至系统环境变量。 #### 3.3 运行步骤 1. **解压源码包**:将下载好的压缩包解压至本地目录。 2. **阅读README文档**:通常项目根目录下会有README.md文件,其中...

    WebCrawler.zip

    4. **train_list.txt、validate_list.txt、test_list.txt**:分别存储训练集、验证集和测试集的图片路径,供模型训练和评估时使用。 5. **img**:存放爬取的原始图像文件的文件夹。 6. **work**:可能包含运行项目时...

    自己动手写网络爬虫

    尽管像百度、Google这样的大型搜索引擎已经为我们抓取了绝大多数的网页数据,但很多时候我们需要爬虫来实现更特定、更定制化的数据抓取需求。 在介绍网络爬虫之前,我们首先需要了解URL和URI的概念。URL是“统一...

    批量下载指定网页的图片

    3. 在搜索框中输入插件名称,如“批量下载图片”。 4. 找到合适的插件后,点击“添加到Chrome”或“添加到Firefox”进行安装。 5. 安装完成后,刷新需要下载图片的网页。 6. 点击插件图标,一般会弹出一个菜单,允许...

    全国各区县经纬度查询困难?精度不够?试试自制市区县经纬度查询工具并将数据保存本地

    为解决这个问题,我们可以编写一个自动化脚本,利用Python等编程语言,配合Selenium等网页自动化工具,从可靠的数据源抓取全国市区县的名称和对应的经纬度信息。数据抓取后,通过去重和整理,将信息存储到本地...

    智能提醒HUB-电路方案

    fetchweather.py,fetchnote.py和main.py代码中使用了大量的绝对路径,运行代码之前请先修改路径并确保正确。 云笔记同步功能需要事先输入leanote蚂蚁的账号与密码,请在fetchnote.py中修改成自己的。 3.系统版本: ...

Global site tag (gtag.js) - Google Analytics