导入需要的库/nfrom bs4 import BeautifulSoup/nimport requests/nimport re/nfrom pachong import url_manager/n/n# 设置爬取的根 URL/nroot_url = 'http://www.crazyant.net'/n/n# 创建一个 URL 管理器对象/nurls = url_manager.UrlManager()/n/n# 将根 URL 添加到 URL 管理器中/nurls.add_new_url(root_url)/n/n# 打开一个文件,以便记录爬取到的信息/nfout = open('crow_all_pages.text', 'w')/n/n# 当 URL 管理器中有新的 URL 时,循环爬取/nwhile urls.has_new_url():/n # 获取当前需要爬取的 URL/n curr_url = urls.get_url()/n /n # 发送请求,获取响应/n r = requests.get(curr_url, timeout=3)/n /n # 如果返回状态码不是 200,说明请求失败,记录错误信息并继续下一个 URL 的爬取/n if r.status_code != 200:/n print('error', 'return status_code is not 200', curr_url)/n continue/n /n # 使用 BeautifulSoup 库解析响应的 HTML 页面/n soup = BeautifulSoup(r.text, 'html.parser')/n /n # 获取页面的标题/n title = soup.title.string/n/n # 将当前 URL 和页面标题写入文件中/n fout.write('%s/t%s/n' % (curr_url, title))/n fout.flush()/n /n # 打印爬取成功的信息/n print('success: %s, %s, %d' % (curr_url, title, len(urls.new_urls)))/n/n # 获取页面中所有的链接/n links = soup.find_all('a')/n /n # 遍历每个链接/n for link in links:/n href = link.get('href')/n /n # 如果链接为空,跳过当前链接/n if href is None:/n continue/n /n # 设置链接的模式,只爬取 http://www.crazyant.net/ 下的以数字结尾的链接/n pattern = r'^http://www.crazyant.net//d+.html$'/n /n # 如果当前模块是主模块,而不是被导入的模块,执行以下代码块/n if name == 'main':/n # 如果链接符合模式,将链接添加到 URL 管理器中/n if re.match(pattern, href):/n urls.add_new_url(href)/n/n# 关闭文件/nfout.close()

CrazyAnt 网站爬虫 - 使用 Python 和 BeautifulSoup 爬取页面

原文地址: https://www.cveoy.top/t/topic/m5vi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录