欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

爬虫学习(一)

程序员文章站 2022-05-08 10:55:57
...
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'])


   
相关标签: Spider