python爬虫学习第十五天

今天首先把昨天的练习3重复做了一遍,还是有些不熟练,不过好多了。
今天的主题是采集整个网站,主要涉及是根据链接一步步的把整个网站全部采集,形成网站地图
昨天的练习3

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# import re
# import datetime
# import random

# def randomUrl(articleUrl):
#   url = "http://en.wikipedia.org"+articleUrl
#   html = urlopen(url)
#   bsObj = BeautifulSoup(html)
#   links = bsObj.find('div',{'id':'bodyContent'}).findAll('a',href = re.compile('^(/wiki/)((?!:).)*$'))
#   return links
#   pass

# random.seed(datetime.datetime.now())
# newlinks = randomUrl('/wiki/Kevin_Bacon')
# while len(newlinks)>0:
#   link = newlinks[random.randint(0,len(newlinks)-1)].attrs['href']
#   print(link)
#   newlinks = randomUrl(link)
#   pass

练习1 网络数据采集示例(逐个采集维基百科的每一个链接)

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# import re

# datas = set()
# def getlinks(linkUrl):
#   global datas
#   url = 'http://en.wikipedia.org'+linkUrl
#   html = urlopen(url)
#   bsObj = BeautifulSoup(html)
#   for link in bsObj.findAll('a',href=re.compile("^(/wiki/)")):
#       if 'href' in link.attrs:
#           if link.attrs['href'] not in datas:
#               newlink = link.attrs['href']
#               print(newlink)
#               datas.add(newlink)
#               getlinks(newlink)
#           else:
#               print('这个页面重复啦!')

#   pass
# getlinks('')

练习2 收集整个网站数据

# from urllib.request import urlopen
# from bs4 import BeautifulSoup
# import re

# datas = set()
# def getLinks(pageUrl):
#   global datas
#   url = 'http://en.wikipedia.org'+pageUrl
#   html = urlopen(url)
#   bsobj = BeautifulSoup(html)
#   try:
#       print(bsobj.h1.get_text())
#       print(bsobj.find(id='mw-content-text').findAll('p')[0])
#       print(bsobj.find(id="ca-edit").find('span').find('a').attrs['href'])
#       pass
#   except AttributeError as e:
#       print('这页面里没有我们要的某些信息')
#   for link in bsobj.findAll('a',href=re.compile("^(/wiki/)")):
#       if 'href'in link.attrs:
#           if link.attrs['href'] not in datas:
#               newlink = link.attrs['href']
#               print(newlink)
#               print('---------------------')
#               datas.add(newlink)
#               getLinks(newlink)
#               pass
#           else:
#               print('我们来过这儿喽')
# getLinks('')

今天的练习就这两个,虽然数量少但是不看书自己敲出来比前面的练习挑战性高的多,完整做完感觉自己还有很多不足,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python第三方库是指由Python社区开发并提供的、不属于Python标准库的软件包。这些库可以通过pip工具进行安装。pip是Python官方提供并维护的在线第三方库安装工具,可以方便地下载和安装各种Python库。对于Python3.x版本环境,可以使用pip3命令代替pip命令来安装第三方库。使用pip安装第三方库需要联网,并且可以使用命令"pip install 库名"来进行安装。\[1\] Python的库非常丰富,提供了超过15万个第三方库。这些库之间广泛联系、逐层封装,几乎覆盖了信息技术的所有领域。在数据分析与可视化、网络爬虫、自动化、WEB开发、机器学习等领域,有许多常用的第三方库可供使用。\[2\] 需要注意的是,由于某些Python第三方库仅提供源代码,无法在Windows系统上进行编译安装,这可能导致在Windows平台下无法安装某些第三方库的问题。\[3\] #### 引用[.reference_title] - *1* *3* [第 10 章 Python 第三方库使用](https://blog.csdn.net/weixin_43252521/article/details/122643457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [吐血整理!Python常用第三方库,码住!!!](https://blog.csdn.net/wuli1024/article/details/117385870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值