2021-03-18 python学习笔记(爬虫)

2021-03-18 爬虫(上)

1、编码规范

1.1 python第一行要输入

#-*-coding:utf-8-*-
#coding=utf-8

这样的话代码里就可以包含中文。

1.2 在python中使用函数实现单一功能/相关功能的代码段可以提高代码的可读性和重复率

1.3 python中可以加入main函数用于测试程序

def main():
    print('hello')

if __name__=="__main__":#当程序执行时
#调用函数
    main()
hello

这样子写的话可以让程序按照自己想要的顺序来,可以更清楚的管理代码的主流程。

2、引入模块

python用import来引入模块

import bs4#网页解析,获取数据
import re#正则表达式,进行文字匹配
import urllib.request,urllib.error#指定URL,获取网页数据
import xlwt#进行excel操作
import sqlite3#进行SQLite数据库操作

3、利用python对豆瓣啊读取数据

# -*- coding: utf-8 -*-
"""
Created on Thu Mar 18 17:30:27 2021

@author: wangyu
"""
import bs4
import re
import urllib.request,urllib.error
import xlwt
import sqlite3#进行SQLite数据库操作

def main():
    baseurl='https://movie.douban.com/top250'
    #1、爬取网页
    datalist=getData(baseurl)
    #savepath='.\\豆瓣电影top250.xls'#.表示当前位置,
    #3、保存数据
    #saveData=(savepath)
    
    askURL('https://movie.douban.com/top250')


#爬取网页
def getData(baseurl):
    datalist=[]
    for i in range(0,10):#调用获取页面的信息10次
        url=baseurl+str(i*25)
        html=askURL(url)  #保存获取到的网页源码
        



    #2、逐一解析数据
        return datalist

#得到一个指定url的网页内容
def askURL(url):
    head={  #模拟浏览器头部信息,向豆瓣服务器发送消息
        'User-Agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
           #用户代理:表示告诉豆瓣服务器,本机是什么类型的机器、浏览器(本质上是告诉浏览器,本机可以接受什么水平的文件)

    request =urllib.request.Request(url,headers=head)
    html=''
    try:
        response=urllib.request.urlopen(request)    
        html=response.read().decode('utf-8')#对中文进行解码
        print(html)
    except urllib.error.URLError as e:
        if hasattr(e,'code'):
            print(e.code)
        if hasattr(e,'reason'):
            print(e.reason)
    return html
        
        

#保存数据
    def saveData(savepath):
     print('save..')

if __name__ == "__main__":          #当程序执行时
#调用函数
    main()

4、beautifulsoup

目的是获取节点,最终目标是为了文档的搜索、遍历等等。

# -*- coding: utf-8 -*-
"""
Created on Thu Mar 18 20:43:46 2021

@author: wangyu
"""

from bs4 import BeautifulSoup

file=open("./baidu.html","rb")
html=file.read()
bs=BeautifulSoup(html,"html.parser")

print(bs.title)

tag:标签及其内容,默认只拿到第一个结果
comment是一种特殊的类型,输出的内容不包括注释符号

4.1文档的遍历

print(bs.head.contents)
print(bs.head.contents[1])#想知道某一个内容则用下标来访问

4.2 文档的搜索(见下一篇学习笔记)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值