BeautifulSoup_Python 登录_beautifulsoup中文文档(4)

电脑杂谈  发布时间:2017-02-19 02:08:31  来源:网络整理

你甚至可以print content看一下 和那个网站下firebugs分析的数据一样

可以看到网页的东西都给抓出来了,真的和firebugs看到的一样,当然,这些个玩意儿,不管是firebugs看到的还是beautifulsoup分析的都是在我们缓存里面的,而不是网上的东西,所以bs(beautifulsoup)里面可以直接修改标签(尤其是更改图片的路径啊)

现在,BS登场。首先是漂亮一点儿的显示,下面这个图里这两行就不用解释了,名字就很明显。

ok,所有BS的详细介绍可以查阅中文文档:

我就解释自己的代码好了。

首先 18 table = soup.table 取出这张表里面的标签,因为分析了一下下,杭电里面我需要的信息都在标签里面,然后再从table里面找。

然后处理图片,为什马要先处理图片那,因为:1、图片需要保存,因此需要原来图片真正的url地址 ;2、保存下来的网页里面图片的src要改成本地的地址。也就是说如果原src = “/data/images/神马神马”,我需要把他改成“/images/hdoj/神马神马”,然后在存到里面,所以先处理保存图片原地址,然后用BS把缓存中的改成想要的东西,再进行后面的操作(这就是说为什马BS是在缓存操作,而不是在网上,网上的东西我们是改不了的)。

图片的相关代码:

1 #images the real url

2 images_src = table.findAll('img')[1:]

3 images = []

4

5 len_img = len(images_src)

6

7 for i in range(len_img):

8 image = str(images_src[i].attrs[0][1])

9 images.append(image)

10

11 # now we change the images url

12

13 for i in range(len_img):

14 images_src[i]['src'] = pro_image + images_src[i].attrs[0][1].split('/')[-1]

2 images_src = table.findAll('img')[1:],取出所有的图片标签,可以type()一下,是,而image_src【i】的type是这个

3 images = [] 这是最后需要保存到info里面杭电图片真正的url的,(下载图片需要)。

8image = str(images_src[i].attrs[0][1]) 这一行比较绕,为神马呢,我在BS文档里面发现了BeautifulSoup.Tag这个里面有个attrs属性,打印出来看了看是这个玩意儿[(u'src', u'http://.cnblogs.com/../data/images/1828-1.jpg')],一个list里面有个元组,而元组里面第二个元素刚好是图片的url,so:attrs[0]是这个(u'src', u'http://.cnblogs.com/../data/images/1828-1.jpg')(一个元组),attrs[0][1]就是图片的url了。

14 images_src[i]['src'] = pro_image + images_src[i].attrs[0][1].split('/')[-1] 更改缓存里面的url,pro_image='/images/hdoj/',这样保存下来的图片就和我本地图片路径一样了,方便后来django显示。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-33239-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...