Я пишу поисковые роботы и гаджеты для Python более двух лет в качестве любителя. Здесь я рекомендую некоторые видеоуроки, учебные статьи и т. Д., Которые, по моему мнению, лучше подходят для обучения. Это чисто личное предложение. Если вы этого не сделаете нравится, не распыляйте его.
содержание
Информация
Лучший способ учиться самостоятельно — это делать это самостоятельно. Что вы хотите использовать? Рекомендуются статьи по грамматике.Учебник для новичков в Python3видео обучениеКитайский университет МООК, Лично я предпочитаю курсы г-на Сунтяна.Есть много курсов, связанных с программированием на языке Python, веб-сканером Python и извлечением информации, анализом и отображением данных Python, 3D-визуализацией научных вычислений Python и т. д. Можно сказать, что он очень всеобъемлющий.Все курсы Mr. Songtian, а затем видеорекомендацияНе заморачивайтесь с Python, Есть вводные статьи и вводные видеоролики, другие предпочитают вводить статьи, что быстрее и экономит время.
Рептилии
Расскажите о сторонних библиотеках и соответствующих документах, задействованных в сканере.
- urllib3
- документация urllib3
- ЗапросыДокументация
- Красивый суп английская версия
- Красивый суп в китайской версии
- регулярное выражение
- scrapy
- копировать документацию
- Синтаксис селектора css
- повторный синтаксис регулярного выражения
- синтаксис xpath
- PyMySQL
- Документация по MySQL
Анализ данных
Знакомство со сторонними библиотеками для анализа данных
Приложите общую стоимость сторонних библиотек для разных целей python на githubawesome-python
Синтаксис селектора css
表达式 说明
* 选择所有节点
#container 选择id为container的节点
.container 选取所有class包含container的节点
li a 选取所有li下的所有a节点
ul + p 选择ul后面的第一个p元素
div#container > ul 选取id为container的div的第一个ul子元素
ul ~ p 选取与ul相邻的所有p元素
a[title] 选取所有有title属性的a元素
a[href="http://baidu.com"] 选取所有href属性为http://baidu.com值的a元素
a[href*="baidu"] 选取所有href属性包含baidu的a元素
a[href^="http"] 选取所有href属性值以http开头的a元素
a[href$=".jpg"] 选取所有href属性值以.jpg结尾的a元素
input[type=radio]:checked 选择选中的radio的元素
div:not(#container) 选取所有id非container的div属性
li:nth-child(3) 选取第三个li元素
tr:nth-child(2n) 第偶数个tr
[css视频介绍](http://www.w3school.com.cn/css/css_selector_type.asp)
повторный синтаксис регулярного выражения
字符 匹配
. 任意字符(除了\n)
[...] 字符集
\d/\D 数字/非数字
\s/\S 空白/非空白
\w/\W 单词字符[a-zA-Z0-9]/非单词字符
* 前一个字符0次或者无限次
+ 前一个字符1次或者无限次
? 前一个字符0次或者一次
{m}/{m,n} 前一个字符m次或者n次
*?/+?/?? 非贪婪(尽可能少匹配字符)
^ 字符串开头
$ 字符串结尾
\A/\Z 指定的字符串必须出现在开头/结尾
| 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\<number> 引用编号为num的分组匹配到的字符串
(?P<name>) 分组起一个别名
(?P=name) 引用别名为name的分组匹配字符串
[\u4E00-\u9FA5] 一个汉字
синтаксис xpath
表达式 说明
article 选取所有article元素的所有子节点
/article 选取跟元素article
article/a 选取所有属于article的子元素的a元素
//div 选取所有div子元素(不论出现在文档任何地方)
article//div 选取所有输入article元素的后代的div元素,不管它出现在article之下的任何位置
//@class 选取所有名为class的属性
/article/div[1] 选取属于article子元素的第一个div元素
/article/div[last()] 选取输入article子元素的最后一个div元素
/article/div[last()-1] 选取属于article子元素的倒数第二个div元素
//div[@lang] 选取所有拥有lang属性的div元素
//div[@lang='eng] 选取所有lang属性为eng的div元素
/div/* 选取属于div元素的所有子节点
//* 选取所有元素
//div[@*] 选取所有带属性的title元素
//div/a|//div/p 选取所有div元素的a和p元素
//span|//ul 选取文档中的span和ul元素
article/div/p|//span 选取所有属于article元素的div元素的p元素以及文档中所有的span元素