从Web获取信息

  1. 用requests模块从Web下载文件
    1.1 从requests.get()函数下载一个网页。
    requests.get()函数接收一个要下载的URL字符串。通过在requests.get()返回值上调用type(),你可以看到它返回的是一个response对象,其中包含了Web服务器对你的请求作出的响应。
import requests
url = "https://www.baidu.com"
response = requests.get(url)
print(response)  #状态码为200表示正常

1.2 将下载的数据保存到硬盘时可以使用for循环和response对象的iter_content()方法,且必须使用" 写二进制 “模式打开即参数” wb "

import requests
response = requests.get('REMO.txt')
PlayFile = open("test.txt",'wb')
for i in response.iter_content(10000):  #10000指字节 
	PlayFile.write(i)
PlayFile.close()

2 用BeautifulSoup模块解析HTML
2.1 从HTML创建一个BeautifulSoup对象
bs4.BeautifulSoup()函数调用时需要传入一个字符串,其中包含将要解析的HTML。bs4.BeautifulSoup()函数返回一个BeautifulSoup对象。

import bs4,requests
response = requests.get('https://www.baidu.com')
response.raise_for_status()
noStarchSoup = bs4.BeautifulSoup(response.text)
print(type(noStarchSoup))

这段代码是利用requests.get()函数从百度网站上下载主页,然后将响应结果的text属性传递给bs4.BeautifulSoup()。然后保存在noStarchSoup中。
也可以向bs4.BeautifulSoup()传递一个File对象。

File = open('example.html')
noStarchSoup = bs4.BeautifulSoup(file)

2.2 用select()方法寻找元素。
CSS选择器的例子
传递给select()的选择器 将匹配
soup.select(‘div’) 所有名为

的元素
soup.select(’#author’) 带有id属性名为author的元素
soup.select(’.notice’) 所有使用CSS class 属性名为notice的元素
soup.select(‘div span’) 所有在
元素之内的 元素
soup.select(‘div>span’) 所有直接在
元素之内的 元素中间无其他元素
soup.select(‘input[name]’) 所有名为,并有一个name属性,其值无所谓的元素
soup.select(‘input[type = “button”]’)所有名为,并有一个type属性,其值为button的元素

mport bs4,requests

headers = {
        "User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0"
    }
response = requests.get('https://movie.douban.com/chart',headers=headers)
html = response.text
soup = bs4.BeautifulSoup(html)
#print(html)
elems = soup.select('#content')
print(type(elems))
print(elems[0])
#筛选id="content"的元素,实例返回一个列表。


获取p标签的元素
elems = soup.select('p')
print(elems[0])
<p class="appintro-title">豆瓣</p>
elem[0].text获得文本
豆瓣
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值