• 百度搜索信息的提取


      对搜索信息的提取,话不多说,先直接上代码(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+'

  • 相关阅读:
    PipeCAD设备管口方位图
    Status code: 404 for http://mirrors.cloud.aliyuncs.com/centos/8/AppStream/x86_64/os/repodata/repom
    LNMP下Redis介绍以及安装(Linux)
    CentOS Linux 8 AppStream 错误:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs
    EndNote 使用经验(GT/T 77142015格式引文)
    EndNote 使用经验(标题出现 %J .....)
    EndNote 使用经验(移除重复文献)
    EndNote 使用经验(初次使用)
    20192409潘则宇 实验七 网络欺诈与防范
    20192409潘则宇 实验六 Metasploit攻击渗透实践
  • 原文地址:https://www.cnblogs.com/DennyT/p/11474523.html
Copyright © 2020-2023  润新知