python 爬虫课程推荐_大家有没有什么好的爬虫推荐教程?

正好,刚开始接触python的时候,参加了一个算是免费(其实是需要付费9.9)的培训课程,刚好是七天课程,爬虫入门!

个人建议:python入门不建议报培训课!!!

请须知!

因为这些你自学就行,网上可以找到很多内容,你不花钱就能学会,你学不会(学废),花钱也没用!

不是广告推销课程,仅仅是记录流水文,非利益相关,如果侵权可联系我删除!!

说是七天,实际上是六天!

新人学,六天,比较难吧,尤其是零基础可能会学废吧!当然不排除有学习大佬,也是可能不用七天吧!

当然你可以学完基础语法再来看这篇,七天应该比较OK!

有疑问可以联系我,虽然我就是个渣渣!

【学习记录】极客大学,7天入门Python爬虫实战营

该篇非广告文

但可能是流水文

一点点记录仅供参考

7 天入门 Python 爬虫实战

Python 训练营·小课

尹会生 金山西山居运维总监

常见网络库精讲

HTTP、HTML 基础介绍

爬虫项目实战

班主任带班学习

怎么说呢,现今的推培训课程,都是采用微信群,打卡的形式来展开

以免费的形式(课程已订购)或者部分免费(限时9.9)的形式来获取学习群

总而言之免费是最贵的,想要快速,省事,省时省力,都是妄想!!

以下是流水账:

总共是7天,实际上是6天,最后一天是总结(结课),填表,搜集精准数据

第一天:

Day 1 视频观看:

1)网页数据的采集与urllib库

2)网页常见的两种请求方式get和post

3)3HTTP头部信息的模拟

Day 1 作业:

比较 urllib 和 requests 库的用法差异,通过 random() 方法实现每次提交请求时增加随机的 user-agent HTTP 头部信息。

参考资料:

urllib:

random():

附参考代码:

import random #引入 random 库

import urllib.request #引入 urllib.request 库

import requests

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

url="https://time.geekbang.org/" # 目标网址

#借助build_opener和addheaders完成

head=('User-Agent',random.choice(ua_list)) #注意:在urllib 中headers是元组

opener=urllib.request.build_opener()

opener.addheaders=[head]

response=opener.open(url)

print(response.read().decode('utf-8'))

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

"""random.choice(seq)

从非空序列 seq 返回一个随机元素。如果 seq 为空,则引发 IndexError。"""

req=requests.get(url,headers=headers)

print(req)

第二天:

Day 2 视频观看:

4)requests库的基本使用

5)结合正则表达式爬取图片链接

Day 2 作业:

使用 requests 库配合正则表达式,获取豆瓣读书 http://book.douban.com/top250 排名最高的25本书的名字。

参考资料:

re:

requests:

附参考代码:

import requests #引入requests库

import re #引入正则re库

import random #引入random库

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

url="https://book.douban.com/top250"

response=requests.get(url,headers=headers).content.decode('utf-8')

bookeze=r'

books=re.findall(bookeze,response,re.S)

print(books)

for book in books:

print(book)

第三天:

‍Day 3 视频观看:

6)Beautiful Soup的安装和使用

Day 3 作业:

1. 使用 Beautiful Soup 筛选器代替正则表达式进行图书名字筛选。

2. 通过搜索引擎了解 Xpath 的功能并比较和 Beautiful Soup 的差异。

参考资料:

Beautiful Soup:

XPath:

附参考代码:

import requests #引入 requests 库

from bs4 import BeautifulSoup #引入 BeautifulSoup 库

import random #引入random库

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

url="https://book.douban.com/top250"

response=requests.get(url,headers=headers).content.decode('utf-8')

soup=BeautifulSoup(response,'html.parser') #bs4解析网页

divs=soup.find('div',class_="article").find_all('div',class_="pl2")

for div in divs:

title=div.find('a').get_text()

title=title.replace('\n','').replace(' ', '') #去除格式,换行,空格

print(title)

第四天:

‍Day 4 视频观看:

7)使用爬虫爬取新闻网站

Day 4 作业:

使用 requests 和 XPath 获取豆瓣 top250 图书名字和作者,保存至本地文件。

参考资料:

Python I/O:

附参考代码:

import requests #引入 requests 库

from lxml import etree #引入etree库

import random #引入random库

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

url="https://book.douban.com/top250"

response=requests.get(url,headers=headers).content.decode('utf-8')

req=etree.HTML(response) #etree解析网页

titles=req.xpath('//tr[@class="item"]/td[2]/div[1]/a/@title') #获取 a 节点 title 属性 文本内容

for title in titles:

print(title)

with open("book.txt",'a+',encoding='utf-8') as f: # 以 utf-8 编码 追加 a+ 的形式 写入 book.txt 中

f.write('%s%s'%(title,'\n'))

第五天:

‍Day 5 视频观看:

8)使用爬虫爬取图片链接并下载图片

Day 5 作业:

学习异常处理对网络超时、文件不存在等异常进行捕获并处理。

参考资料:

错误和异常:

附参考代码:

import requests #引入 requests 库

from bs4 import BeautifulSoup #引入 BeautifulSoup 库

import random #引入 random 库

from requests.adapters import HTTPAdapter #引入 HTTPAdapter 库

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

url="https://book.douban.com/top250"

"""

python requests 配置超时及重试次数

max_retries 为最大重试次数,重试3次,加上最初的一次请求,一共是4次

"""

s = requests.Session()

s.mount('http://', HTTPAdapter(max_retries=3))

s.mount('https://', HTTPAdapter(max_retries=3))

try:

response=s.get(url,headers=headers,timeout=5).content.decode('utf-8')

except requests.exceptions.RequestException as e:

print(e)

soup=BeautifulSoup(response,'html.parser') #bs4解析网页

divs=soup.find('div',class_="article").find_all('div',class_="pl2")

for div in divs:

title=div.find('a').get_text()

title=title.replace('\n','').replace(' ', '') #去除格式,换行,空格

print(title)

第六天:

Day 6 作业:

通过豆瓣 Top250 的

参考资料:

HTML 超链接:

附参考代码:

import requests #引入 requests 库

from bs4 import BeautifulSoup #引入 BeautifulSoup 库

import random #引入random库

#ua列表

ua_list=[

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31',

'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',

]

headers={'User-Agent':random.choice(ua_list)} #随机生成协议头

url="https://book.douban.com/top250"

response=requests.get(url,headers=headers).content.decode('utf-8')

soup=BeautifulSoup(response,'html.parser') #bs4解析网页

divs=soup.find('div',class_="article").find_all('div',class_="pl2")

i=1

for div in divs[:10]: # 切片 获取前十本节点内容

href=div.find('a')['href']

print(href)

book_response = requests.get(href, headers=headers).content.decode('utf-8') #访问书籍详情页

book_soup = BeautifulSoup(book_response, 'html.parser') # bs4解析网页

h1=book_soup.find('div',id="wrapper").find('h1').get_text() #获取标题

h1=h1.replace('\n','')

h1='Top%d:%s'%(i,h1)

print(h1)

comment_infos=''

lis=book_soup.find('div',id="comments").find('ul').find_all('li')

for li in lis:

author=li.find('span',class_="comment-info").find('a').get_text()

conment=li.find('p',class_="comment-content").get_text()

comment_info='%s%s%s%s%s%s'%('author:','\n',author,'\n','conment:',conment)

print(comment_info)

comment_infos='%s%s%s'%(comment_infos,'\n',comment_info)

print(comment_infos)

with open('top10_book.txt','a+',encoding='utf-8') as f:

f.write('%s%s%s%s'%(h1,'\n',comment_infos,'\n'))

i=i+1

第七天:总结,结课

故没有作业和代码!

个人总结:

1.不太适合零基础学习,起码需要点python语法基础

当然除非你有极大学习毅力以及脱产学习和足够多的时间研究!

python语法基础的学习其实已经是劝退了大部分人!

2.小课群群员广泛,大部分在职人员几乎没有时间看视频课程以及讨论

适合时间多,自主学习能力强的人入门学习,尤其是在校学生!

3.已经入门python爬虫的没必要再学习该小课!

以上作业代码仅供参考!

总而言之

学习需要靠自己,至于培训,见仁见智!!

想要快速,省事,省时省力,都是妄想!!

最后

还是 个人建议:python入门不建议报培训课!!!

请须知!

因为这些你自学就行,网上可以找到很多内容,你不花钱就能学会,你学不会(学废),花钱也没用!

不是广告推销课程,仅仅是记录流水文,非利益相关,如果侵权可联系我删除!!

说是七天,实际上是六天!

新人学,六天,比较难吧,尤其是零基础可能会学废吧!当然不排除有学习大佬,也是可能不用七天吧!

当然你可以学完基础语法再来看这篇,七天应该比较OK!

有疑问可以联系我,虽然我就是个渣渣!

你可能感兴趣的:(python,爬虫课程推荐)