python反爬之懒加载

Posted by
# 在平时的爬虫中,如果遇到没有局部刷新,没有字体加密,右键检查也能看到清晰的数据,但是按照已经制定好的解析规则进行解析时,会返回空数据,这是为什么呢,这时可以在网页右键查看一下网页源代码,可以发现,在网页上的源代码中有些部分是正确的,有些标签是不正确的,改了名字或者加了数字,或者不是你在网页上检查看到的标签名,所以如果你按照网页上的解析规则去解析, 是解析不到的,这时就要按照网页源代码的解析规则去解析了,这就是典型的网页懒加载。# 什么是网页懒加载?# 网页懒加载是前端为了提高网页访问速度,将页面内没有出现在可视区域内的图片先不做加载,等到手动滑动鼠标滚动到可视区域后再加载。这样对于网页加载性能上会有很大的提升,懒加载的效果就可以提升用户体验。import requestsfrom pyquery import PyQuery as pqheaders = {    'User-Agent':"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10",}url = 'http://sc.chinaz.com/tupian/fengjingtupian.html'r = requests.get(url=url,headers = headers)r.encoding = r.apparent_encodingdemo = r.textsoup = pqsrc = soup('.box.picblock.col3 img')for i in src:    i = pq    i = i.attr    printprint
body
  color white

  选取了站长之家作为目标站点

解析后

  右键检查看到的标签

body {
  color: #fff;
}

图片 1

注意这里将英文字母解析为16进制

实际爬取下来的网页源代码


图片 2

body
  color: white

按照这个解析规则,一般就能正确的解析出来需要的内容了。

解析后

body {
  color: #fff;
}

textarea, input
  border 1px solid #eee

textarea,
input {
  border: 1px solid #eee;
}

写成一行之后就需要加上逗号


textarea
input
  border 1px solid #eee

解析后

textarea,
input {
  border: 1px solid #eee;
}

foo bar baz
> input
  border 1px solid

解析后

foo bar baz,
> input {
  border: 1px solid;
}

foo bar baz,
form input,
> a
  border 1px solid

解析后

foo bar baz,
form input,
> a {
  border: 1px solid;
}

textarea
input
  color #A7A7A7
  &:hover
    color #000

解析后

textarea,
input {
  color: #a7a7a7;
}
textarea:hover,
input:hover {
  color: #000;
}

box-shadow()
  -webkit-box-shadow arguments
  -moz-box-shadow arguments
  box-shadow arguments
  html.ie8 &,
  html.ie7 &,
  html.ie6 &
    border 2px solid arguments[length(arguments) - 1]

body
  #login
    box-shadow 1px 1px 3px #eee

解析后

body #login {
  -webkit-box-shadow: 1px 1px 3px #eee;
  -moz-box-shadow: 1px 1px 3px #eee;
  box-shadow: 1px 1px 3px #eee;
}
html.ie8 body #login,
html.ie7 body #login,
html.ie6 body #login {
  border: 2px solid #eee;
}

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注