Python爬虫爬取网页数据并存储(一)

环境搭建

1.需要事先安装anaconda(或Python3.7)和pycharm
*anaconda可在中科大镜像下下载较快
2.安装中遇到的问题:
*anaconda(记得安装过程中点添加路径到path里,没添加的话手动添加:
计算机右键属性——高级系统设置——环境变量——用户/系统变量path路径中,添加 C:\Users\Aurora\Anaconda3;(anaconda安装路径))
打开jupyter notebook ,出现页面空白解决方案:
打开 C:\Users\自己的用户名.jupyter\jupyter_notebook_config.py
在末尾输入以下代码:
import webbrowser
webbrowser.register(“Chrome”, None, webbrowser.GenericBrowser(u"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"))
c.NotebookApp.browser = u’Chrome’
##浏览器名,浏览器路径(通过右键属性可以看到路径)

 *anaconda ,打开cmd/anaconda prompt,输入conda list 即可查看已有的包,还需添加可用 conda install package_name 来添加
 在本次网络爬虫过程中,我们需要的库有: re,urllib(这两个库为Python内置库,不需要添加),requests,lxml(anaconda中已存在,Python3.7安装装需要使用pip,下载whl软件),beautifulsoup4,json

 *pycharm基础设置问题:
     设置为conda环境下Python3.7

爬虫基本原理

什么是爬虫?
爬虫是请求网站并提取数据的自动化程序

从简单的例子开始:
我们随便打开一个网站,我们在百度上搜索新闻,右键,审查元素
在这里插入图片描述
会得到这样一个响应,点Name那一栏唯一的一个news.baidu.com,我们会发现以下信息:
在这里插入图片描述
我们就通过这些html代码来获取信息。
让计算机代替人工来提取信息就是我们要用Python所要实现的任务。
所以我们就可以通过以上过程总结爬虫的基本原理
1.发出请求:即发出一个Request
2.获取响应内容:如果服务器正常响应就可以得到一个Response
3.解析内容:得到的内容是HTML,可以用正则表达式,网页解析库进行解析。
4.保存数据

urllib库使用

urllib.request 请求模块

//简单使用
import urllib.request
request = urllib.request.Request('http://www.baidu.com')
response = urllib.request.urlopen(request)
print(response.read(),decode('utf-8'))

urllib.error 异常处理模块

urllib.parse url解析模块

urllib.robotparser robots.txt解析模块

(建议用下面的requests库而不使用urllib库)

requests库使用

解析json

//
import json
import requests
response = request.get("http://httpbin.org/get")
print(response.json())
//添加headers参数(应对一些反爬虫的最简单的方法)
//以猫眼电影top100为例
 import requests
 url = 'https://maoyan.com/board/4?offset=0'
 headers = {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
 response = requests.get(url,headers = headers)
 response.encoding = 'utf-8'

正则表达式

正则表达式
在这里插入图片描述
在这里插入图片描述


一个示例

import requests
from requests.exceptions import RequestException
import re
import json

def get_one_page(url,headers):
   try:
        response = requests.get(url,headers = headers)
        response.encoding = 'utf-8'
        if response.status_code == 200:
            return response.text
        return None
   except RequestException:
       return None

def parse_one_page(html):
//提取网页信息的正则表达式
    pattern = re.compile('<dd>.*?board-index.*?>(\d*)</i>.*?data-src="(.*?)".*?name"><a'
                         +'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)(/p)'
                         +'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.S)  
    items = re.findall(pattern,html)
    for item in items:
        yield {
            'index':item[0],
            'image': item[1],
            'title': item[2],
            'actor': item[3].strip()[3:],
            'time': item[4].strip()[5:],
            'score': item[5]+item[6]
        }
//写入result.txt文件中
def write_to_file(content):
    with open('result.txt', 'a') as f:
        f.write(json.dumps(content) + '\n')
        f.close()


def main():
//猫眼电影爬取需添加headers,从用户角度访问
    url = 'https://maoyan.com/board/4?offset=0'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = {'User-Agent': user_agent}
    html = get_one_page(url, headers)
    for item in parse_one_page(html):
        print(item)
        write_to_file(item)


if __name__ == '__main__':
    main()

运行结果:
在这里插入图片描述
上述例子为抓取一页信息并存储,若要抓取多页的信息,需要引入Pool模块,用多线程并发抓取,如下构造:

def main(offset):
    url = 'https://maoyan.com/board/4?offset=0'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = {'User-Agent': user_agent}
    html = get_one_page(url, headers)
     for item in parse_one_page(html):
        print(item)
        write_to_file(item)
if __name__ == '__main__':
    p = Pool()
    p.map(main.[i*10 for i in range(10)]       
  • 45
    点赞
  • 449
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: Python爬虫可以通过网络爬虫技术获取网页数据,然后使用数据可视化工具将数据可视化。数据可视化可以帮助我们更好地理解和分析数据,从而更好地做出决策。Python爬虫数据可视化是数据科学中非常重要的两个领域,它们可以帮助我们更好地理解和利用数据。 ### 回答2: Python爬虫是一种能够通过编写代码自动从互联网上获取信息的工具。使用Python编写的爬虫程序可以模拟浏览器进行网页数据的抓取,而网页数据的可视化是将抓取到的数据以图表、图像等形式展示出来,便于用户直观地理解和分析数据爬虫首先需要选择合适的库,常用的有BeautifulSoup、Scrapy等。BeautifulSoup是一个用于分析HTML和XML文档的Python库,它可以方便地从网页中提取出你感兴趣的数据。Scrapy是一个功能强大的Web爬虫框架,它可以自定义爬取策略、并发爬取等。 编写爬虫程序时,首先需要通过指定URL来请求网页数据。使用Python的requests库可以方便地发送HTTP请求,并获取到相应的网页内容。通过解析网页内容,可以找到所需的数据,并将其存储到本地文件或数据库中。 数据可视化则需要借助一些数据可视化库,如Matplotlib、Seaborn、Plotly等。这些库提供了丰富的绘图函数,可以根据数据的不同特点选择合适的图表类型。例如,使用Matplotlib可以绘制折线图、散点图、柱状图等,Seaborn则专注于统计图形的绘制,Plotly可以创建交互式可视化图表等。 在爬取数据并进行可视化后,可以通过图表直观地展示出数据的趋势、相对大小等特征。这样的可视化结果可以为决策提供依据,帮助用户更好地理解和分析数据。 综上所述,Python爬虫数据可视化是两个互相关联的领域。Python编写的爬虫程序可以获取网页数据,而使用数据可视化技术可以将抓取到的数据以图形化形式展示出来,使数据更加易于理解和分析。 ### 回答3: Python爬虫是一种用于自动化从互联网上获取数据的工具。它利用Python编程语言的强大库和模块,如requests、BeautifulSoup和Selenium等,可以方便地爬取网页上的数据。 首先,我们需要使用requests库发送HTTP请求获取网页的HTML代码。通过分析HTML结构和标签,我们可以使用BeautifulSoup库提取感兴趣的数据,如标题、内容、链接等。此外,如果网页是通过JavaScript动态生成的,我们可以使用Selenium库模拟浏览器行为来获取完整的数据。 获取到数据后,可以进行进一步的处理和清洗,如去除HTML标签、转换数据类型等。然后,我们可以使用Python中的各种库(如pandas、matplotlib和seaborn)来对数据进行可视化分析。 在数据可视化方面,pandas库可以帮助我们进行数据整理和处理,如对数据进行排序、过滤、聚合等。matplotlib和seaborn库则提供了各种绘图函数,如折线图、柱状图、散点图、饼图等,可以将数据以直观的图形展示出来。 除了基本的统计图表,我们还可以使用地图库(如folium、basemap)将数据在地图上展示,或者使用词云库(如wordcloud)将文本数据可视化为漂亮的词云图。 总结起来,通过Python爬虫和相关的数据处理和可视化库,我们可以方便地获取网页上的数据,并将其以各种丰富的形式进行可视化呈现。这不仅可以帮助我们更好地理解和分析数据,还可以用于数据报告、数据仪表盘和数据故事等各种应用中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值