IT Xiao Ang Zai 8月19号
版本:python3.64
编程软件:pycharm
接下来要学习网络爬虫了,那里面的东西是非常神奇的,平时我也有一些小爱好,比如听戏,谈到听戏的话,不如就先给大家展示一下一个简单的爬取豫剧的代码:
先运行如下代码:
import urllib.request
import re
from bs4 import BeautifulSoup
def main():
url = "http://www.xiquwenhua.net/yuju/"
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html,"html.parser")
for each in soup.find_all(href=re.compile("/xiqudaquan/yuju/xiazai")):
print(each)
if __name__ == "__main__":
main()
这时候我们会发现,根据网页源码,会爬取下来如下信息:
接下来我们要进入第二链接,该怎样做呢。由于这里只是简单介绍,故我们由之前的基础知识来改代码。可以先把这些作为字符串写入文件再切片得到所需内容。加入如下语句:
for each in soup.find_all(href=re.compile("/xiqudaquan/yuju/xiazai")):
print(each)
with open("E:\\my.text","a+") as f:
f.write(str(each)[9:42])
f.write("\n")
效果如下:
我们显然需要去重,这时候就需要另写一个文件了,方法略过,最后得到文件如下:
再对比网页即可得到第二链接地址:
然后我们由如下代码得到最终的下载链接:
a = [5810,6268,5832,6278,6277,6271,6274,6273,6272,6270,6269,6267]
for i in range(len(a)):
url2 = "http://www.xiquwenhua.net/xiqudaquan/yuju/xiazai/%d.html" % a[i]
response2 = urllib.request.urlopen(url2)
html2 = response2.read()
soup2 = BeautifulSoup(html2,"html.parser")
for each2 in soup2.find_all(href=re.compile("pan.baidu.com")):
print(each2)
效果如下:
爬取百度链接的加密密码这里就不讲解了,方法类似。