zoukankan      html  css  js  c++  java
  • 百度搜索信息的提取

      对搜索信息的提取,话不多说,先直接上代码(Python):

      

    import urllib
    import urllib.request
    from lxml.html import etree
    
    data =  {}
    data['word'] = 'inurl:php?id=1'    #搜索关键爱字
    url_values = urllib.parse.urlencode(data)
    url = 'http://www.baidu.com/s?'
    full_url = url + url_values
    response = urllib.request.urlopen(full_url)
    content = response.read()
    content = content.decode('UTF-8')
    content = etree.HTML(content)#构造一个XPath解析对象并对HTML文本进行自动修正
    content = content.xpath("//*[@id='content_left']/div")#找到要提取信息的大标签
    #print(len(content))
    
    for id in range(len(content)):      #提取出来的信息都是list形式的标签位置,所以后面还要有参数
        name = content[id].xpath(".//h3/a")
        url = content[id].xpath(".//div/div/div/a")
        if not url :              #这里有几个url的xpath路径不一样,又添加了一个提取规则
            url = content[id].xpath(".//div/a")   
        try:    
            if (name and url) :        #判断name和url同时存在才会写入文件
    #            name = name[0].text
    #            url = url[0].text
    #            print(url)
    #            print(name)
                f = open('targets.txt','a+')
                f.write(url+"		")
                f.write(name+"
    ")
                f.close()
        except:
            continue

      网络上这类脚本很多,我写出来的目的是为了记录自己的学习笔记,因为学习Python还是得自己亲自写,实践才是最好的学习,欢迎大佬指教。

      搜索关键字为 inurl:php?id=1,懂得人懂知道这是谷歌语法吧,有点想法的同学都知道咋这是url的采集吧,脚本比较简陋,也只是提取当前页面的url了,后期还会完善,添加一些的功能参数。这里用的是xpath提取用户信息,相对于正则好用一些,而且F12,打开开发者工具,还可以复制你需要的信息的路径地址。

       

    小记:

      关于open()的mode参数

      'r':读

      'w':写

      'a':追加

      'r+' :(可读可写,文件若不存在就报错(IOError))

      'w+' :(可读可写,文件若不存在就创建)

      'a+' :(可追加可写,文件若不存在就创建)

      如果是二进制文件,就都加一个b:

      'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

  • 相关阅读:
    redis:aof恢复与rdb服务器间迁移
    redis的主从服务器配置
    redis:消息发布与订阅频道
    redis:hash哈希类型的操作
    redis:order set有序集合类型的操作(有序集合)
    redis:set集合类型的操作(无序集合)
    redis:list列表类型的操作
    C#之多线程
    C# 操作FTP
    C# 导出导入TXT文件
  • 原文地址:https://www.cnblogs.com/DennyT/p/11474523.html
Copyright © 2011-2022 走看看