当前位置:   article > 正文

基于python的脚本爬取:维基百科实战_python爬取整个wiki

python爬取整个wiki

爬虫已经逐渐成为非程序员都要学会的技能之一。而当前市面上的爬虫脚本冗杂,这里提供一个易于新手上手的脚本爬取,主要特点就是简单,快速上手看下面。 

使用场景:爬取维基百科内容

效果:给一个网页,返回一个chinese_txt文件,里面有爬回这个网页内所有的文字,以及网页内所有的链接内的网页文字也会被爬到。

快速上手

  1. pip install 上面所有的包
  2. full_url 内填入你要爬取的第一个网页
  3. 运行代码即可
  4. 你还可以:
    1. 调整 depth的判断语句(if depth < n) 来控制爬虫的深度。举个例子,我访问了一个维基百科,这是1层,这个维基百科里有很多链接链到别的网页,我如果从1层网页点了某个链接,就进入了2层。以此类推,你也可以控制爬虫爬取的深度。
    2. 调整你要爬取的内容。你可以使用F12开启开发者工具,并查看你要爬取的内容所在的模块,并在for p in soup.find_all('p') 中进行更改
    3. 如果你有chatgpt或类似生成式AI,你可以结合AI进行代码解读,或让他给你进一步优化。
  1. import requests
  2. import re
  3. import time
  4. from bs4 import BeautifulSoup
  5. exist_url = []
  6. g_writecount = 0
  7. full_url = "" # 填写你要爬取的网页
  8. def scrappy(url, depth=1):
  9. global g_writecount
  10. try:
  11. headers = {
  12. 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"}
  13. r = requests.get(full_url, headers=headers)
  14. html = r.text
  15. except Exception as e:
  16. print("Failed downloading and saving ", full_url)
  17. print(e)
  18. exist_url.append(full_url)
  19. return None
  20. exist_url.append(url)
  21. # 使用BeautifulSoup提取页面的所有文本内容
  22. soup = BeautifulSoup(html, 'lxml')
  23. # 提取所有文本
  24. chinese_text = ''.join([p.get_text() for p in soup.find_all('p')])
  25. # 保存中文文本到文件
  26. with open('chinese_txt.txt', 'a+', encoding='utf-8') as f:
  27. f.write(chinese_text)
  28. link_list = re.findall('<a href="/wiki/([^:#=<>]*?)".*?</a>', html)
  29. unique_list = list(set(link_list) - set(exist_url))
  30. for eachone in unique_list:
  31. g_writecount += 1
  32. output = 'No.' + str(g_writecount) + '\t Depth:' + str(depth) + '\t' + full_url + ' -> ' + eachone + '\n'
  33. print(output)
  34. if depth < 2:
  35. time.sleep(5) # 添加5秒的延迟
  36. scrappy(eachone, depth + 1)
  37. start = time.time()
  38. scrappy(url)
  39. stop = time.time()
  40. print("所用时间:", stop - start)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/368303
推荐阅读
相关标签
  

闽ICP备14008679号