121.4_爬虫实战和数据重塑

鸣谢

[Python While 循环语句 | 菜鸟教程 (runoob.com)](https://www.runoob.com/python/python-while-loop.html)

R语言数据重塑 - R语言教程 - PHPERZ中文资讯站

原理与安装 | 白月黑羽 (byhy.net)


数据爬取

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
browser = webdriver.Chrome()    #打开驱动
browser.get('http://202.118.40.10/admin/zsmlgl/zsmlinfo.aspx')   #进入网站
browser.implicitly_wait(5)  #最大反应时间
i=0

while i<85:     #总共84页
    i+=1
    elements = browser.find_elements_by_name('pager_input')
    for element in elements:
      print(element.text)
    ii='%d'%i
    element.clear()     #清空输入框
    element.send_keys(ii)       #输入页码
    elements = browser.find_elements_by_name('pager')
    for element in elements:
        element.click()     #点击进入页码页面

    element = browser.find_element_by_id('dgData')   # 定位表格,element是WebElement类型
    # 提取表格内容td
    td_content = element.find_elements_by_tag_name("td")    # 进一步定位到表格内容所在的td节点
    lst = []     # 存储为list
    for td in td_content:
        lst.append(td.text)
    print('第',ii,'页DONE')    # 输出表格内容记号
    with open('5.csv', 'a', newline='') as ile:
        writer = csv.writer(ile)
        writer.writerow(lst)
        #写进csv文件
        
browser.quit()
quit()  #退出

数据重塑

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
MYDATA <-read.csv("5.CSV",header = F)
headert <- c('骞村害','瀵煎笀缂栧彿','濮撳悕','鎬у埆','鐮旂┒鐢熺被鍒?','瀛︿綅绫诲瀷','璇','闄㈢郴浠g爜','闄㈢郴鍚嶇О','涓撲笟浠g爜','涓撲笟鍚嶇О','绉戝浠g爜','绉戝鍚嶇О','鑱岀О','鑱旂郴閭')
a2<-rbind(headert,a1)
a4<-a2[,-c(1:15)]
outputd <- c()
i<- 1
ii <- i+14
delv <- a4[,(i:ii)]
colnames(delv)<-headert
delv <- delv[-1,]
outputd <- rbind(outputd,delv)
repeat{
  i<- ii+1
  ii <- i+14
  delv <- a4[,(i:ii)]
  colnames(delv)<-headert
  delv <- delv[-1,]
  outputd <- rbind(outputd,delv)
  if(ii>=750){
    break
  }
}
write.csv(outputd,"outputa2.csv", row.names=FALSE)

英文版的R,中文大概率会乱码,所以建议全英文编程。

CTRL-/