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