Python开发笔记:网络数据抓取

    网络数据获取(爬取)分为两部分:

1、抓取(抓取网页)

· urlib内建模块,特别是urlib.request

· Requests第三方库(中小型网络爬虫的开发)

· Scrapy框架(大型网络爬虫的开发)

2、解析(解析网页内容)

· BeautifulSoup库

· re模块(正则表达式)

或者第三方API抓取和解析。

   Requests库(http://www.python-requests.org/en/master/)

基本方法:

  requests.get():请求获取指定URL位置的资源,对应HTTP协议中的GET方法。

   

import requests  
  
r=requests.get('https://book.douban.com/subject/1084336/')  
  
r.status_code  
Out[3]: 200  
  
r.text  

  

import requests  
  
re=requests.get('http://finance.sina.com.cn/realstock/company/sh000001/nc.shtml')  
  
print(re.text)  

  BeautifulSoup库(https://www.crummy.com/software/BeautifulSoup/bs4/doc/)

  

from bs4 import BeautifulSoup  
  
markup = '<p class="title"><b>The Little Prince</b></p>'  
  
soup = BeautifulSoup(markup, "lxml")  
  
soup.b  
Out[5]: <b>The Little Prince</b>  
  
type(soup.b)  
Out[6]: bs4.element.Tag  
  
tag=soup.p  
  
tag.name  
Out[8]: 'p'  
  
tag.attrs  
Out[9]: {'class': ['title']}  
  
tag['class']  
Out[10]: ['title']  
  
tag.string  
Out[11]: 'The Little Prince'  
  
type(tag.string)  
Out[12]: bs4.element.NavigableString  
  
soup.find_all('b')  
Out[13]: [<b>The Little Prince</b>] 

  

import requests  
from bs4 import BeautifulSoup  
r=requests.get('https://book.douban.com/subject/1084336/')  
soup=BeautifulSoup(r.text,'lxml')  
pattern=soup.find_all('p','comment-content')  
for item in pattern:  
    print(item.string)  
      

  

posted @ 2018-03-14 08:38  圆柱模板  阅读(306)  评论(0编辑  收藏  举报