解决[<Element i at 0x18a666abf08>]问题

爬取猫眼电影并保存数据到excel的源码如下:

注:由于这个源码没有使用selenium,所有出现滑块验证是要先登录

https://maoyan.com/board/4? 进行手动验证
import requests
from lxml import etree
import pandas as pd
df = []
# 注:猫眼电影有时要滑块验证,所以print打印出来为猫眼验证中心,要先登录网址通过滑块验证
base_url = 'https://maoyan.com/board/4?offset={}'
headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
        }
columns = ['排名', '片名', '主演', '时间']
for i in range(50):
    url = base_url.format(str(i))
    response = requests.get(url, headers=headers)
    print(response.text)
    html = response.text
    xp = etree.HTML(html)
    # print(xp)
    lis = xp.xpath('//*[@id="app"]/div/div/div[1]')
    # print(lis)
    for li in lis:
    # 以下结果全是element x at ......
        paiming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/i/text()')
        pianming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/div/div/div[1]/p[1]/a/text()')
        zhuyan = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/div/div/div[1]/p[2]/text()')[0].strip().replace("\xa0\xa0\xa0", "\t").split("\t")
        shijian = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/div/div/div[1]/p[3]/text()')
    # print(paiming)
    # print(pianming)
    # print(zhuyan)
        b = df.append([paiming, pianming, zhuyan, shijian])
        # dataframe是二维数组,columns将上面的标题行插入到二维数组中
        d = pd.DataFrame(df, columns=columns)
        # index=False表示输出不显示索引值
        d.to_excel("猫眼电影.xlsx", index=False)






 如上图所示,我之前复制的xpath语句是

paiming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/i')
pianming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/div/div/div[1]/p[1]/a')
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

这会导致print(paiming)的结果为 [<Element i at 0x18a666abf08>]

但是只要在xpath的最后加上/text(),就能使打印结果为文字

paiming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/i/text()')
pianming = li.xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/div/div/div[1]/p[1]/a/text()')
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

结果如下:

['2']
['我不是药神']
['主演:徐峥,周一围,王传君']

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如何在django中用django-redis实现网页输入数据redis接受储存数据,网页的代码如下{% extends './base.html' %} {% block base %} <div class="main"> <div class="title-box" style="color:#444;"> <h3>新增学生</h3> </div> <div class="form-box"> {% if messages %} {% for message in messages %} <div class="alert alert-danger" role="alert" style="width: 70%">{{ message }}</div> {% endfor %} {% endif %} <div class="row"> <div class="col-5"> <form action="{% url 'card:student_create' %}" method="POST"> {% csrf_token %} <div class="form-group"> <label>学生学号</label> <input type="text" name="student_code" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="form-group"> <label>学生姓名</label> <input type="text" name="name" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="form-group"> <label>学生电话</label> <input type="text" name="phone" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="form-group"> <label>学生地址</label> <input type="text" name="address" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="form-group"> <label>学生院系</label> <input type="text" name="faculty" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="form-group"> <label>学生专业</label> <input type="text" name="major" class="form-control"> <small class="form-text text-muted"></small> </div> <div class="submit-box"> <button type="submit" class="btn btn-primary" style="background: #18a5db; border-color: #18a5db;">提交 <tton> </div> </form> </div> </div> </div> </div> {% endblock base %} 该如何写
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

knighthood2001

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

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

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

打赏作者

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

抵扣说明:

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

余额充值