Python爬虫入门之requests 和 BeautifulSoup

(1)在window系统下,安装了anaconda 适合python 3 的 软件,在命令行中利用pip insatll jupyter notebook ,安装了jupyter notebook;

(2)使用Chrome浏览器开发工具获取源代码;

(3)所有编写程序均在anaconda下的jupyter notebook或者Spyder 中运行;


"""
代码一
安装 requests,在命令行中输入 pip install requests 即可;

"""
#使用requests 读取新浪新闻网页信息
import requests
newurl="http://news.sina.com.cn/china/"
res=requests.get(newurl)
res.encoding='utf-8'   #注明编码方式,否则的话会出现乱码
print(res.text)        #输出网页的文本信息

使用bs4中的BeatifulSoup 部件对网页信息进行解析,将非结构化数据转化为结构化数据;

"""
代码二
需要安装BeautifulSoup4,在命令行中输入pip install BeautifulSoup4 即可

"""

from bs4 import BeautifulSoup
html_sample = ' \
<html> \
 <body> \
 <h1 id="title">Hello World</h1> \
 <a href="#" class="link">This is link1</a> \
 <a href="# link2" class="link">This is link2</a> \
 </body> \
 </html>'
soup = BeautifulSoup(html_sample, 'html.parser')
print(type(soup))
print(soup.text)

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 27 10:07:43 2018

@author: Administrator
代码三
"""
from bs4 import BeautifulSoup
html_sample = ' \
<html> \
 <body> \
 <h1 id="title">Hello World</h1> \
 <a href="#" class="link">This is link1</a> \
 <a href="# link2" class="link">This is link2</a> \
 </body> \
 </html>'
soup = BeautifulSoup(html_sample,'html.parser')

#使用select  找出含有h1的标签的元素
print('使用select  找出含有h1的标签的元素')
header=soup.select('h1')
print(header)
print()
#使用select  找出含有a的标签的元素
print('使用select  找出含有a的标签的元素')
alink=soup.select('a')
print(alink)
for link in alink:
    print(link)
    print(link.text) 
print()
#取出含有特定CSS 属性的元素(id 前面加#)
print("取出含有特定CSS 属性的元素")
alink=soup.select('#title')
print(alink)
print()
#使用select 取出含有class 为link的元素(class前加 .)
print('使用select 取出含有class 为link的元素')
for link in soup.select('.link'):
    print(link)    
print()    
#使用 select 找出所有 a tag de href 连接
print('使用 select 找出所有 a tag 的 href 连接')
alinks=soup.select('a')
for link in alinks:
    print(link)
    print(link['href'])
print()
#for example
a='<a href="#" qoo=123 abc=456>i am a link</a>'    
soup2=BeautifulSoup(a,'html.parser')
print(soup2.select('a')[0]['href'])
print(soup2.select('a')[0]['qoo'])
print(soup2.select('a')[0]['abc'])

输出结果:

使用select  找出含有h1的标签的元素
[<h1 id="title">Hello World</h1>]

使用select  找出含有a的标签的元素
[<a class="link" href="#">This is link1</a>, <a class="link" href="# link2">This is link2</a>]
<a class="link" href="#">This is link1</a>
This is link1
<a class="link" href="# link2">This is link2</a>
This is link2

取出含有特定CSS 属性的元素
[<h1 id="title">Hello World</h1>]

使用select 取出含有class 为link的元素
<a class="link" href="#">This is link1</a>
<a class="link" href="# link2">This is link2</a>

使用 select 找出所有 a tag 的 href 连接
<a class="link" href="#">This is link1</a>
#
<a class="link" href="# link2">This is link2</a>
# link2

#
123
456

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值