前言
最近在学习崔庆才大佬的网络爬虫课程,难免要用到他GitHub上课源代码.但项目很多,一个个下载这种事情,显得很愚蠢.我作为一个程序员,宁愿用一天来写一个代码,也不要用十分钟来手动下载(`へ´*)ノ.
目标站点分析
这次我们要下载的zip文件链接是这样的:
我们只要爬取关键词"DouYin"就能构造一个zip链接.
修改"page"参数就能修改爬取页面:
HTML下载器
HTML下载器用到了requests库的get方法,这里没啥好介绍的,直接附上代码:
def getHTML(offset):
url = 'https://github.com/Python3WebSpider?page=' + str(offset)
r = requests.get(url)
try:
if r.status_code == 200:
return (r.text)
except:
print('链接失败!')
HTML解析器
这里用到两种方法,正则表达式和BeautifulSoup解析器.
我们要爬取的对象是"h3"标签的子标签—“a"的string属性"DouYin”.
方法一:
def parsePage1(html,urllist,namelist):
pattern = re.compile('<h3>.*?<a href=.*?itemprop="name codeRepository">(.*?)</a>.*?</h3>', re.S)
items = re.findall(pattern, html)
for item in items:
zipurl = 'https://github.com/Python3WebSpider/' + item[9:] + '/archive/master.zip'
urllist.append(zipurl)
namelist.append(item[9:])
方法二:
def parsePage2(html, urllist, namelist):
soup = BeautifulSoup(html, 'html.parser')
data = soup.find_all('h3')
for item in data:
a = item('a')
for item in a:
print(item.string)
zipurl = 'https://github.com/Python3WebSpider/' + item[9<