珍爱网的 cityList改成 js文件了,并且加入了一些数字字母 怎么爬

来源:15-3 提取城市和url

qq_该努力了_04033947

2019-01-10

求助

写回答

4回答

刘老先生

2020-02-06

我稍微改了一下能正确的爬出来了,确实他们的网站进行了一些改版,我把整个网页当成了string就可以爬到了

时间是2020年2月6日有效

func main() {
  resp, err := http.Get("http://www.zhenai.com/zhenghun")
  if err!=nil{
     panic(err)
  }

  defer resp.Body.Close()
  //e:=determinEncoding(resp.Body)
  //utf8reader:=transform.NewReader(resp.Body,e.NewDecoder())
  if resp.StatusCode!=http.StatusOK{
     fmt.Println("err")
     return
  }
     all,err:=ioutil.ReadAll(resp.Body)
     if err!=nil{
        panic(err)
     }
     getmatch(string(all))
     //fmt.Printf("%s\n",all)
}

func getmatch(contents string){
  re:=regexp.MustCompile(`<a href="(http://www.zhenai.com/zhenghun/[a-z0-9]*)"[^>]*>([^<]*)</a>`)
matches:=re.FindAllStringSubmatch(contents,-1)
for _,match:= range matches{
  fmt.Println(match[1],match[2])
}
fmt.Println(len(matches))}

1
0

兜兜转转便是空

2020-02-06

很多信息都可以扒他的json,扒他的json解析可以拿到很多数据

var jsonRe = regexp.MustCompile(`STATE__=(.*)+;\(function`)

用这个能扒到它的json

0
2
兜兜转转便是空
回复
刘老先生
现在网站改版后,没法再有序的拿到对应的值,拿到的json虽然也要处理,但是对应的信息是比较多的,处理起来也不算麻烦
2020-02-07
共2条回复

刘老先生

2020-02-06

虽然他把网页做了改版,但是我在通过http请求的时候我发现我返回的是内容完全是没有格式的,很类似字符串然后我就发http返回的内容直接格式化成了字符串然后通过字符串的方式匹配成功了,通过findall 这种方式如果不是字符串匹配不成功,

0
0

ccmouse

2019-01-13

已在另一个问题中解答

0
2
ccmouse
回复
慕神1044616
抱歉当时原题主问了好几个类似问题,所以我就这么回了,现在看到由于系统关系,似乎很难搜索到原问题。不过没有关系,我当时大致说了一下,但现在,我已经对爬虫本身的内容选择进行了扩充,请参考14-2 爬虫的法律风险和14-3 新爬虫的选择
2020-01-06
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1908 问题

查看课程