前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫篇(1)——从爬取练习题开始1 1.对python练习100例内容的爬取

爬虫篇(1)——从爬取练习题开始1 1.对python练习100例内容的爬取

作者头像
DC童生
发布2018-04-28 11:41:54
2K0
发布2018-04-28 11:41:54
举报
文章被收录于专栏:机器学习原理机器学习原理

前言:

介绍小例子,加深对爬虫的理解,主要用bs4完成

主页面:

image.png

副页面:

image.png

  • 代码实现
  • 1.请求主网页源码
代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests
url = "http://www.runoob.com/python/python-100-examples.html"
#发送请求
content = requests.get(url,params=None).content.decode("utf-8")
  • 2.获得每一个副页面的网址 找到通往副页面网址的标签的id

image.png

代码语言:javascript
复制
html = BeautifulSoup(content,"html.parser")
# print(type(html))
#查找每个练习的a标签的href属性
a=html.find(id="content").ul.find_all("a")
#创建一个列表保存url
url_list=[]
for x in a:
    url_list.append("http://www.runoob.com"+x["href"])
  • 3.对每一个副页面的内容就行抓取 找到对应内容的的标签下面的id

image.png

代码语言:javascript
复制
datas=[]
for i in range(100):
    dic = {}
    html01 = requests.get(url_list[i]).content.decode("utf-8")
    soup02 = BeautifulSoup(html01, "html.parser")
    dic['title'] = soup02.find(id="content").h1.text
    # 题目
    dic['content01'] = soup02.find(id="content").p.next_sibling.next_sibling.text
    # print(content01)
    # 程序分析
    dic['content02'] = soup02.find(id="content").p.next_sibling.next_sibling.next_sibling.next_sibling.text
    try:
        dic['content03'] = soup02.find(class_="hl-main").text
    except Exception as e:
        dic["content03"] = soup02.find("pre").text
  • 4.把内容保存到csv文件中
代码语言:javascript
复制
    with open("100_py.csv","a+",encoding="utf-8") as file:
        file.write(dic['title']+"\n")
        file.write(dic['content01']+"\n")
        file.write(dic['content02']+"\n")
        file.write(dic['content03']+"\n")
        file.write("*"*60+"\n")

结果:

可以看到有四千多行数据

image.png

后记:

bs4中的find方法查找标签太麻烦,还是推荐用xpath

爬虫篇(4)——qq音乐爬取

爬虫篇(3)——招聘信息爬取

爬虫篇(2)——爬取博客内容

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档