找回密码
 加入
搜索
查看: 12547|回复: 20

[IE类操作] 如何做一个完整的网站数据获取,并写入到sqlite数据库

 火.. [复制链接]
发表于 2013-3-18 23:10:05 | 显示全部楼层 |阅读模式
本帖最后由 nangua111111 于 2013-3-20 22:24 编辑

菜鸟,看了教材但是不懂,各位高手帮忙一下,以便我们这种菜鸟能完整的学习一下。
#include <ie.au3>
#include <array.au3>

$oIE1=_IECreate("http://xlinesoft.com/livedemo/shopcart/admin/login.php");1、建立网页衔接
$oIE = _IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/login.php","url")
$Ele1 = _IEGetObjByName($oIE,"username") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele1,"admin@test.com")
$Ele2 = _IEGetObjByName($oIE,"password") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele2,"admin")
_IELinkClickByText($oIE,"Submit")
;;;;;;;;;以上登陆界面;;;;;;;
_IELinkClickByText($oIE,"States")
$Ele3=_IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/shopstates_list.php","Embedded")
$oIEstates=_IEBodyReadHTML($Ele3);获取代码
MsgBox(0,"",$oIEstates)
;正则表达式获取表格数据


Local $Test

    $Test = StringRegExp($oIEstates, '<span id="edit.+_State_name" >(.+)', 3)
        
     
_ArrayDisplay($Test, UBound($Test))
后续还在研究。需要获取表格数据如图片
持续更新研究中

用帮助没有问题,但是显示不了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-3-19 10:17:55 | 显示全部楼层
虽然不明白,帮你顶下吧~
坐等高手~
发表于 2013-3-19 11:40:48 | 显示全部楼层
帮你顶下吧~
发表于 2013-3-19 15:53:04 | 显示全部楼层
帮顶,顺便学习
 楼主| 发表于 2013-3-19 16:25:48 | 显示全部楼层
菜鸟们一起来解决吧
发表于 2013-3-20 13:43:58 | 显示全部楼层
写入数据库这块我也想学,读数据我也经常在做,我一般是读网页上的表
发表于 2013-3-20 15:31:28 | 显示全部楼层
#include <Array.au3>
#include <ie.au3>
#include <array.au3>

$oIE=_IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/shopstates_list.php","URL")
$oTable=_IETableGetCollection ($oIE ,10)
$array=_IETableWriteToArray($oTable)
_ArrayDisplay($array,'Debug~~~')

评分

参与人数 1金钱 +10 收起 理由
nangua111111 + 10

查看全部评分

 楼主| 发表于 2013-3-20 19:40:48 | 显示全部楼层
本帖最后由 nangua111111 于 2013-3-20 19:47 编辑
#include <Array.au3>
#include <array.au3>

#AutoIt3Wrapper_run_debug_mode=Y
$oIE1=_IECreate("http://xlinesoft.com/livedemo/shopcart/admin/login.php");1、建立网页衔接
;$oIE = _IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/login.php")
$Ele1 = _IEGetObjByName($oIE1,"username") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele1,"admin@test.com")
$Ele2 = _IEGetObjByName($oIE1,"password") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele2,"admin")
_IELinkClickByText($oIE1,"Submit")
;;;;;;;;;以上登陆界面;;;;;;;
_IELinkClickByText($oIE1,"States")
;;进入表格页面
$oIE=_IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/shopstates_list.php","URL")
$oTable=_IETableGetCollection ($oIE ,10);获取页面里面的第十张表格
$array=_IETableWriteToArray($oTable,true);将表格内容转换成数组,并行列对换。
_ArrayDisplay($array,'Debug~~~')
感谢 shqf
接下来是怎么把数组写入sqlite 流程,继续摸索

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-3-20 22:21:20 | 显示全部楼层
本帖最后由 nangua111111 于 2013-3-21 10:22 编辑
#include <ie.au3>
#include <Array.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>


#AutoIt3Wrapper_run_debug_mode=Y
$oIE1=_IECreate("http://xlinesoft.com/livedemo/shopcart/admin/login.php");1、建立网页衔接
;$oIE = _IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/login.php")
$Ele1 = _IEGetObjByName($oIE1,"username") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele1,"admin@test.com")
$Ele2 = _IEGetObjByName($oIE1,"password") ;注意相同name情况,需要第三参数
_IEFormElementSetValue($Ele2,"admin")
_IELinkClickByText($oIE1,"Submit")
;;;;;;;;;以上登陆界面;;;;;;;
_IELinkClickByText($oIE1,"States")

$oIEstates=_IEBodyReadHTML($oIE1);获取代码
;MsgBox(0,"",$oIEstates)
;正则表达式获取表格数据
;$open = FileOpen("test.txt",1)


$oIE=_IEAttach("http://xlinesoft.com/livedemo/shopcart/admin/shopstates_list.php","URL")
$oTable=_IETableGetCollection ($oIE ,10)
$array=_IETableWriteToArray($oTable,true)
_ArrayDisplay($array,'Debug~~~')


;sqlite语句
_SQLite_Startup ()
If @error Then
    MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
    Exit - 1
EndIf

_SQLite_Open(@ScriptDir & "\Database.db") ; 建立打开数据库
If @error Then
    MsgBox(16, "SQLite Error", "Can't Load Database!")
    Exit - 1
EndIf

_SQLite_Exec (-1, "CREATE TABLE Radio ('"&$array[0][3]&"','"&$array[0][4]&"','"&$array[0][5]&"');");建立表,注意'"&$array[$i][3]&"'表达式

For $i=2 to 21 Step +1
   _SQLite_Exec (-1, "INSERT INTO Radio VALUES ('"&$array[$i][3]&"','"&$array[$i][4]&"','"&$array[$i][5]&"');");写入数组,注意'"&$array[$i][3]&"'表达式
next
 

_SQLite_Close ()
_SQLite_Shutdown ()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-3-20 22:24:05 | 显示全部楼层
下一步学习怎么用正则获取,一直解决不了希望高手帮忙
发表于 2013-3-21 21:50:03 | 显示全部楼层
回复 8# nangua111111
好像数据没有取全啊?
发表于 2013-3-21 21:51:31 | 显示全部楼层
回复 10# nangua111111
可以用Post/Get获取网页代码,然后正则提取数据
 楼主| 发表于 2013-3-22 00:42:41 | 显示全部楼层
回复 12# xms77
谢谢,我再试试看
 楼主| 发表于 2013-3-22 23:08:12 | 显示全部楼层
还在练习 查询和显示语句,sqlite好像对中文支持不好啊。
大家能帮忙说一下注意点吗?
发表于 2013-3-23 19:59:20 | 显示全部楼层
哦也,扒站啊
linux下curl或者wget 效率比较高
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 04:50 , Processed in 0.167993 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表