使用python爬取网页,获取不到图片地址

Python014

使用python爬取网页,获取不到图片地址,第1张

这个大图片是在点击之后用 JS 控制加载的。

你可以看看 js/js.js 这个文件,253 行:

function changeImg(){

jQuery("#bitImg").attr('src','p/p'+pictID+'/'+indexNum+'.'+jpgPng)

}

其实大图的规律很好找, 下面缩略图列表的 src 可以用 #variContent >li >img 取到,可以在源码中的 107 行找到:

view-source:http://pictogram2.com/?p=2315

缩略图列表地址长这样:

/p/p0997/tn/1.jpg

/p/p0997/tn/2.jpg

/p/p0997/tn/3.jpg

...

如果要获取大图,只要去掉“tn”这一段就可以:

/p/p0997/1.jpg

/p/p0997/2.jpg

/p/p0997/3.jpg

...

然后拼接域名在前面,GET 下来就是大图,比如第一个大图链接:

第一个大图地址

不过,你如果仅仅只是想要抓那个站的全部素材,穷举“p0997”这一段的序号(比如改成“p0098”,这个应该是图集的 ID),并且遍历最后一段的图片序号,扩展名可能是 jpg 也可能是 png,从 1 开始(“1.jpg”,“2.jpg”...)直到返回 404 停止。

思路大概是这么个思路,不过话说回来,你这么爬人家素材真的道德吗?

爬虫技术是一种自动化程序。

爬虫就是一种可以从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数据。

搜索引擎通过这些爬虫从一个网站爬到另一个网站,跟踪网页中的链接,访问更多的网页,这个过程称为爬行,这些新的网址会被存入数据库等待搜索。简而言之,爬虫就是通过不间断地访问互联网,然后从中获取你指定的信息并返回给你。而我们的互联网上,随时都有无数的爬虫在爬取数据,并返回给使用者。

爬虫技术的功能

1、获取网页

获取网页可以简单理解为向网页的服务器发送网络请求,然后服务器返回给我们网页的源代码,其中通信的底层原理较为复杂,而Python给我们封装好了urllib库和requests库等,这些库可以让我们非常简单的发送各种形式的请求。

2、提取信息

获取到的网页源码内包含了很多信息,想要进提取到我们需要的信息,则需要对源码还要做进一步筛选。可以选用python中的re库即通过正则匹配的形式去提取信息,也可以采用BeautifulSoup库(bs4)等解析源代码,除了有自动编码的优势之外,bs4库还可以结构化输出源代码信息,更易于理解与使用。

3、保存数据

提取到我们需要的有用信息后,需要在Python中把它们保存下来。可以使用通过内置函数open保存为文本数据,也可以用第三方库保存为其它形式的数据,例如可以通过pandas库保存为常见的xlsx数据,如果有图片等非结构化数据还可以通过pymongo库保存至非结构化数据库中。

关键在于查找时间的正则表达式,也就是程序中reg变量的字符串,你可以去了解一下

import re

s = """<a class="time" target="_blank" href="">昨天 00:26</a>

<a class="time" target="_blank" href="">今天 00:26</a>"""

def getTime(html):

   reg = r'<a class="time".*>(.*)</a>'

   timere = re.compile(reg)

   timelist = re.findall(timere,html)

   for t in timelist:

       print t

       

getTime(s)