python爬虫初学(1)——爬取豆瓣250电影信息,openpyxl库

一、注释

   python初学者的第一次爬虫编写,流程如下:1)向网站发送请求  2)获取服务器响应信息 3)解析相应数据

#发送的地址
url='https://baidu.com'
#发送请求
response=requests.get(url)  #发送请求,获取响应
response.encoding='utf-8'  #不同网页编码不同
#url是要下载的目标网页的url
#伪装自己,尽量使服务器认为我是从浏览器访问的。可在request函数参数中写入headers timeout来使得服务器认为我是从浏览器访问的
#处理结果
#解析相应的数据
#是否保存'''

二、代码



import requests
from lxml import etree
import pprint
from bs4 import BeautifulSoup
import json
import openpyxl
import pandas as pd
#构造分页数字列表
#下载所有页面的html,用于后续数据处理

htmls=[]
def get_text(list):
    return list[0]
all_datas=[]
for index in range(0,10):
    url='https://movie.douban.com/top250?start='+str(index*25)

    heads={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'}
    #print('craw html:',url)
    r=requests.get(url,headers=heads,timeout=3)
    if r.status_code!=200:
        raise Exception('error')
    htmls=etree.HTML(r.text)  #r.text就是html的数据
    lis=htmls.xpath('//*[@id="content"]/div/div[1]/ol/li')
    datas=[]
    for li in lis:
        title = get_text(li.xpath('./div/div[2]/div[1]/a/span[1]/text()')) #返回值是一个列表
        rank=get_text(li.xpath('./div/div[1]/em/text()'))
        rating_star=get_text(li.xpath('./div/div[2]/div[2]/div/span[2]/text()')).replace('rating','').replace('-t','')
        comments=get_text(li.xpath('./div/div[2]/div[2]/div/span[4]/text()')).replace('人评价','')
        #print(title,rank,rating_star,comments)
        datas.append({'排名':rank,'电影名称':title,'评分':rating_star,'评论数':comments})
    all_datas.extend(datas)
movie=pd.DataFrame(all_datas)
movie.to_excel(r'D:\movie.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值