python爬虫学习

首先使用python写爬虫需要用到什么?
首当其冲的就需要安装python,我使用的3.7版,截止写这篇文章时python最新版本是3.8.3,可以在官网下载:https://www.python.org/,
安装步骤按照可视化窗口下一步即可,安装完成打开cmd 输入 python -V查看出现版本号说明安装成功,如果提示不是内部命令则需配置环境变量。
如何配置环境变量可以自行百度,简单说三步:
1、打开电脑属性
2、 打开高级系统设置-高级-环境变量(如果没看到请细细查找)
3、path添加python安装路径(路径截止到包含ptyhon.exe)
安装完成之后使用pip(python包管理工具)同样cmd 输入 pip -V即可查看版本号;
接下来安装4个工具分别是:
jupyter(代码编写工具)
requests(http请求工具)
lxml(解析网页结构数据)
beautifulsoup(网页文档解析工具)

国内镜像地址:https://pypi.douban.com/simple 
pip install jupyter https://pypi.douban.com/simple    
pip install requests https://pypi.douban.com/simple
pip install lxml https://pypi.douban.com/simple
pip isntall bs4 https://pypi.douban.com/simple
#bs4是beautifulsoup第四版本

安装完成之后打开cmd 输入 jupyter notebook 打开jupyter即可编辑python命令(前提是已绑定默认浏览器),未绑定可以复制cmd打印出来的url进行访问,点击new选择python新建编辑代码,为了更好理解代码可以先看一看python开发文档;
在这里插入图片描述
在这里插入图片描述

完成之后,思考一下爬虫的思路:
1、确定爬取目标 比如豆瓣https://movie.douban.com/cinema/later/beijing/
2、获取页面html
3、解析网页(html)结构数据
4、解析网页文档
接下来编写代码

import requests;
import lxml;
from bs4 import BeautifulSoup
url = "https://movie.douban.com/cinema/later/beijing/";
header={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'
}
res=requests.get(url,headers=header);
soup = BeautifulSoup(res.content.decode('utf-8'), 'lxml') 
# soup = BeautifulSoup(res.content.decode("utf-8"),"lxml")
# print(soup)
all_movies = soup.find("div",id="showing-soon")
# all_movies = soup.find("div",id="showing-soon")


# 初始化BeautifulSoup方法二:手动指定解析编码解析网页
# soup = BeautifulSoup(response.content, 'lxml', from_encoding='utf-8') 


# print(all_movies)
html_file = open('data1.html', 'w', encoding="utf-8")

# print(all_movies)
file_html=open("data.html","w",encoding="utf-8")
file_html.write("""
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>豆瓣电影即将上映影片信息</title>
    <link href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h2 class="text-center">豆瓣电影即将上映影片信息</h2>
<table class="table table-striped table-hover mx-auto text-center">
    <thead>
        <tr>
            <th>影片名</th>
            <th>上映日期</th>
            <th>影片类型</th>
            <th>地区</th>
            <th>关注者数量</th>
        </tr>
    </thead>
    <tbody>
""")
for each_movie in all_movies.find_all('div', class_="item"):  # 从最大的div里面找到影片的div
    # print(each_movie)  # 输出每个影片div的内容
    all_a_tag = each_movie.find_all('a')
    all_li_tag = each_movie.find_all('li')
    movie_name = all_a_tag[1].text
    moive_href = all_a_tag[1]['href']
    movie_date = all_li_tag[0].text
    movie_type = all_li_tag[1].text
    movie_area = all_li_tag[2].text
    # 替换字符串里面的 想看 两个字为空,使得更加美观
    movie_lovers = all_li_tag[3].text.replace("想看", '')
#     print('名字:{},链接:{},日期:{},类型:{},地区:{}, 关注者:{}'.format(
#         movie_name, moive_href, movie_date, movie_type, movie_area, movie_lovers))
    file_html.write("""
        <tr>
            <td><a href="{}">{}</a></td>
            <td>{}</td>
            <td>{}</td>
            <td>{}</td>
            <td>{}</td>
        </tr>
    """.format(moive_href, movie_name, movie_date, movie_type, movie_area, movie_lovers))
file_html.write("""
     </tbody>
</table>
</body>
</html>
""")
file_html.close()
print("write_finished!")

python file(文件)方法:
open()用于打开一个文档并返回文件对象,上边用到三个参数:file和mode,encoding
file必填,文件相对路径和绝对路径,
encoding:通常使用utf8
mode:
w:打开一个文件只用于写入,如果该文件已经存在,则打开文件并从头开始写入,原有内容被删除,如果不存在则创建新文件,
r:只读方式打开文件,
b:二进制
rb:以二进制方式打开文件用于只读,
+:打开一个文件用于更新
a:打开一个文件用于追加,指针在文件最后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长影缚苍龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值