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+'

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/DennyT/p/11474523.html
Copyright © 2011-2022 走看看