百度搜索信息的提取

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

原文地址:https://www.cnblogs.com/DennyT/p/11474523.html