楼主: fcfc2013
2492 3

[问答] 关于循环获取下一页网址自定义函数问题 [推广有奖]

  • 3关注
  • 1粉丝

已卖:1169份资源

博士生

76%

还不是VIP/贵宾

-

威望
0
论坛币
7223 个
通用积分
6.2147
学术水平
12 点
热心指数
26 点
信用等级
9 点
经验
14348 点
帖子
307
精华
0
在线时间
285 小时
注册时间
2013-2-13
最后登录
2020-2-7

楼主
fcfc2013 发表于 2016-3-29 11:11:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
获取淘宝商品信息页面 “下一页”连接,大约有100页左右。   
我抓取了一页得知获取的规律(详见代码),我想循环这个抓取页面代码,比如100次或自动判断无“下一页”连接时停止,得到一个变量 page_next( 每行一个链接网址)
  1. library(xml2)
  2. library(rvest)
  3. library(dplyr)


  4. url <- "https://list.tmall.com/search_product.htm?spm=a220m.1000858.1000724.9.jNt2XM&cat=50892008&brand=30652&q=%C3%C0%B5%C4&sort=s&style=l&from=sn_1_cat-qp&industryCatId=50892008&tmhkmain=0#J_Filter"   #起始页面
  5. html_session(url)

  6. web <- read_html(url,encoding="GBK")
  7. # 获取商品链接网址
  8. page_next <- web%>%
  9.   html_nodes("a.ui-page-next")%>%
  10.   html_attr("href")%>%
  11.   as.character()%>%
  12.   iconv("utf-8","gbk")   #获取第2页的网址

  13. url_next <- paste0("https://list.tmall.com/search_product.htm?spm=a220m.1000858.1000724.9.jNt2XM",page_next)
  14. url_next <- read_html(url_next,encoding="GBK")

  15. page_next_2 <- url_next%>%
  16.   html_nodes("a.ui-page-next")%>%
  17.   html_attr("href")%>%
  18.   as.character()%>%
  19.   iconv("utf-8","gbk")   #获取第3页的网址

  20. url_next_3 <- paste0("https://list.tmall.com/search_product.htm?spm=a220m.1000858.1000724.9.jNt2XM",page_next_2)  #获取第四页网址
  21.   
复制代码
请教 这个是否可以编写一个自定义函数,一次获取所有的网页连接地址。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:自定义函数 自定义 Character Library BRARY R语言 爬虫

沙发
fcfc2013 发表于 2016-3-29 20:43:10 来自手机
fcfc2013 发表于 2016-3-29 11:11
获取淘宝商品信息页面 “下一页”连接,大约有100页左右。   
我抓取了一页得知获取的规律(详见代码),我 ...
没人回复,沙发空位。

藤椅
fcfc2013 发表于 2016-3-29 22:13:46 来自手机
fcfc2013 发表于 2016-3-29 11:11
获取淘宝商品信息页面 “下一页”连接,大约有100页左右。   
我抓取了一页得知获取的规律(详见代码),我 ...
求 版主 和各路大神给予解答或是编程的思路

板凳
fcfc2013 发表于 2016-3-30 13:50:31
在QQ好友的帮助下,给出了循环函数的代码:
  1. #写个循环获取“下一页”链接网址的函数
  2. url <- "https://list.tmall.com/search_product.htm?spm=a220m.1000858.1000724.9.jNt2XM&cat=50892008&brand=30652&q=%C3%C0%B5%C4&sort=s&style=l&from=sn_1_cat-qp&industryCatId=50892008&tmhkmain=0#J_Filter"
  3. get_page_next <- function(url , count) {
  4.   library(xml2)
  5.   library(rvest)
  6.   library(dplyr)
  7.   html_session(url)
  8.   i <- 1
  9.   ls <- list(url)
  10.   url_next <- url
  11.   while (i<=count) {
  12.     web <- read_html(url_next,encoding="GBK")
  13.     # 获取商品链接网址
  14.     page_next <- web%>%
  15.       html_nodes("a.ui-page-next")%>%
  16.       html_attr("href")%>%
  17.       as.character()%>%
  18.       iconv("utf-8","gbk")
  19.    
  20. #获取第2页的网址
  21.    
  22.     url_next <- paste0("https://list.tmall.com/search_product.htm?spm=a220m.1000858.1000724.9.jNt2XM",page_next)
  23.     i<-i+1
  24.     ls<-append(ls,url_next);
  25.   }
  26.   return (ls)
  27. }
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 03:04