爬虫学习(一)

1、第一个爬虫程序(爬新浪主页)
import requests
res = requests.get('http://tech.sina.com.cn/')
res.encoding = 'utf-8'
print(res.text)
注意:指定编码类型,爬出来的中文可能是乱码
查看页面的编码类型,通过ctrl+f12中Elements代码里面的charset的赋值,可以使用ctrl+F查找
新浪新闻:UTF-8;人民网:GB2312;腾讯体育:GBK;
2、BeautifulSoup剖析网页元素
一中爬来的网页全部只是网页的代码,需要对网页进行剖析,我剖析网页使用到一个BeautifulSoup这个模块
代码如下:
from bs4 import BeautifulSoup
html_sample ='\
<html>\
<head>\
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />\
<title>新浪科技_新浪网</title>\
<meta name="keywords" content="科技,IT科技,科技新闻,互联网,移动互联网,电信,手机,iPhone,Android,软件应用,数码产品,笔记本,平板电脑,iPad,数码相机,DV,硬件,科学探索">\
<meta name="description" content="新浪科技是新浪网最重要频道之一,24小时滚动报道IT业界,电信、互联网及大众科技新闻,最及时权威的产业及事件报道平台,手机、数码、笔记本及软件下载一网打尽。">\
</head>\
</html>'
soup = BeautifulSoup(html_sample,'html.parser')
print(type(soup))
print(soup.text)
这样只是利用BeautifulSoup来去掉标签,运行结果如下
<class 'bs4.BeautifulSoup'>
 新浪科技_新浪网
BeautifulSoup找出所有含有特定标签的HTML元素
(1)使用select找出含有meta标签的元素
from bs4 import BeautifulSoup
html_sample ='\
<html>\
<head>\
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />\
<title>新浪科技_新浪网</title>\
<meta name="keywords" content="科技,IT科技,科技新闻,互联网,移动互联网,电信,手机,iPhone,Android,软件应用,数码产品,笔记本,平板电脑,iPad,数码相机,DV,硬件,科学探索">\
<meta name="description" content="新浪科技是新浪网最重要频道之一,24小时滚动报道IT业界,电信、互联网及大众科技新闻,最及时权威的产业及事件报道平台,手机、数码、笔记本及软件下载一网打尽。">\
</head>\
</html>'
soup = BeautifulSoup(html_sample,'html.parser')
header = soup.select('meta')
print(header)
运行结果如下:
[<meta content="text/html; charset=utf-8" http-equiv="Content-type"/>,
<meta content="科技,IT科技,科技新闻,互联网,移动互联网,电信,手机,iPhone,Android,软件应用,数码产品,笔记本,平板电脑,iPad,数码相机,DV,硬件,科学探索" name="keywords"/>,
<meta content="新浪科技是新浪网最重要频道之一,24小时滚动报道IT业界,电信、互联网及大众科技新闻,最及时权威的产业及事件报道平台,手机、数码、笔记本及软件下载一网打尽。" name="description"/>]
使用select找出所有id为title的元素
alink = soup.select('#title')
print(alink)
使用select找出所有class为link的元素
alink = soup.select('.link')
print(alink)
使用select找出所有的a tag的herf连接
alinks = soup.select('a')
for link in alinks:
    print(link['href'])


   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值