RUVIDEO
Поделитесь видео 🙏

【Python基础】03 爬虫练习(主要练习循环) смотреть онлайн

📁 Лайфстайл 👁️ 16 📅 03.12.2023

# /usr/bin/evn python
# -*- coding: utf-8 -*-


# 设置支持中文的utf-8编码


# 这是一个爬虫demo,目标是从github上抓取10个reptiles的python项目。


# demo使用urllib2 进行怕取操作。
import urllib2
# 使用urllib2.urlopen 打开地址,获取地址的html。
# 这里我们已经在github上基本搜索了一次。已经能获取URL地址
# https://github.com/search?p=1&q=python+reptiles&type=Repositories


# 这里一共有8页。
url="https://github.com/search?p={}&q=python+reptiles&type=Repositories"
# 直接使用i是有问题,需要从1-8,这样地址是对的。
for i in range(1,9):
#这里先看下地址是否正确。
#print(url.format(i))
#html 是获取的信息。这里打开地址后需要再调用read才能获取到页面的值。
u=url.format(i)
html = urllib2.urlopen(u).read();
# 1. 首先我们需要先获取li
# 1.1 在这里,初步判断li的数量每页可能不一致。所以使用while循环进行操作。
# 声明一个信号变量。用于控制while是否继续进行。
index=0
boo=True;
while boo:
# 每个li 的关键词是 "repo-list-item" ,所以搜索"repo-list-item"的位置
# index 应该是从0 开始,但第二个应该是根据上一个搜索结果开始判断
index = html.find("repo-list-item",index)
if index==-1:
boo=False;
break;
# 2. 之后从li 里面获取 p 标签里面的关键字
# 3. 再从programmingLanguage 里面判断是否是Python语言。
# 4. 当以上信息满足时,将项目的url地址和项目的名称输出。
# 按照文本处理的顺序是从前往后的。
# html 上有用数据包括: 项目名称,地址,关键字和语言类型。
# 顺序也是这样,所以先获取项目名称和url。
# 可以看到,项目名称在A标签里面 关键字是 v-align-middle
# 因为已经获取到li的主要起始位置,所以是在这个基础上继续获取。
index = html.find("v-align-middle",index)
# 在这个A标签里面有效数据包括href和A标签的文本值。
# 这样继续获取A标签的 href=" find的使用,在查找是包含了自己? 可以看到,这个值是href=,并不是想要的。
# 这样index应该在原来基础上加上 href=" 这个长度
index = html.find("href=", index)+6;
# 结束的位置是'"'。 '"' 属于特殊字符,需要使用\进行转译。
end = html.find("\"",index);


demourl=html[index:end];
# 查找到﹥ 就是A标签的结束。 同理加上﹥的长度
index = html.find("﹥",index)+1;
# 结束的话就是A标签的结束, 刚才忘记加索引位置了
end =html.find("﹤/a﹥",index);
# 这里可以看到 有些时候是由﹤em﹥和﹤/em﹥ 把这些删除了。
demoname=html[index:end];
demoname = demoname.replace("﹤em﹥","").replace("﹤/em﹥","")


index=end;
# 先输出一下看看结果是否正确。
# print(u)
# print(demoname);
index=html.find("﹤p class=\"mb-1\"﹥",index);
end=html.find("﹤/p﹥",index);
search_src=html[index:end];


python_index=search_src.find("python",)
reptile_index =search_src.find("reptile")


if python_index==-1 or reptile_index==-1:
# 当两个搜索条件满足才继续进行,如果是否则跳过.
continue;


index=end;
# 获取programmingLanguage ﹤/span﹥
index=html.find("programmingLanguage\"﹥", index);
end = html.find("﹤/span﹥", index);


language_index=html[index:end].find("Python");


if language_index!=-1:
print("name:{},url:{}".format(demoname,demourl));


# 调试,就先执行一次。实际上因为在外层有循环,所以是每页都把第一个输出了。
pass;


# urllib2.HTTPError: HTTP Error 429: Too Many Requests
# 这个不用管,是github上说我们的链接太多了


# 好像没出来,刚才P应该是大写


# 这个Demo基本结束了。这个demo重点是 for 循环和while循环的使用,其他是字符串的查找和截取。

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «【Python基础】03 爬虫练习(主要练习循环)» бесплатно и без регистрации, вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.