python 爬虫求教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 爬虫求教相关的知识,希望对你有一定的参考价值。

我参照示例,爬取电影名称(图中1位置)代码是: name_list = soup.find_all('div', class_='hd') for each in name_list: name = each.a.span.text.strip() movie_list.append(name)可以爬出‘title’名称但是当我自己实践,爬取评分的时候(图中2位置): star_list = soup.find_all('div', class_='star') for per in star_list: star = per.span.text.strip() ????怎么改 movie_list.append(star)结果返回空什么都没有。虽然我知道这两句1 <span class="title">寻梦环游记</span>2 <span class="rating_num" property="v:average">9.0</span>有区别,但是我还是不明白具体的问题出在哪?如同第二种网页属性怎么爬取想要的分数。还望来个高手能详细的解释下,或推荐个链接学习下。

python爬虫,requests非常好用,建议使用。匹配结果使用re正则,列:

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

import re


str1 = """
<span class="title">寻梦环游记</span>
...
<span class="rating_num" property="v:average">9.0</span>
"""

title = re.search(r'<span class="title">(.*?)</span>', str1)
if title:
    print(title.group(1))
rating = re.search(r'<span class="rating_num" property="v:average">(.*?)</span>', str1)
if rating:
    print(rating.group(1))

参考技术A

粗略看了下,你实际爬取评分的时候因为star下面的子节点有多个相同的标签。因此你不能用爬取电影名称的方式爬取评分。标签的contents属性你可以用上,因为contents 属性可以将tag的子节点以列表的方式输出

参考代码如下(我并未验证,只是参考官方文档来写的。你可以用这段代码去试试,如果对了,麻烦采纳):

#在你找到star所有节点的前提下
for per in star_list:
    star = per.contents[1].text.strip()
    movie_list.append(star)

求教python中的turtle

参考技术A

海龟库(turtle)

    海龟库 (turtle) 是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    海龟库积木盒有点类似Kitten创作工具的画笔和动作积木盒的结合体,可以绘制、控制画笔移动,大家使用一下就可以体会了哦。

    海龟图的窗口坐标系同Kitten舞台类似,小窗口的情况下,海龟图高和宽是固定400像素。全屏的海龟图和浏览器本身的尺寸有关。

    请点击输入图片描述

    请点击输入图片描述

    海龟图和math库、random库一样,需要先导入库 import turtle,才可以使用库中的函数。使用海龟库中的函数,你可以画出各种有趣的图形。

参考技术B 简介:turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令。

1.在文件头写上如下行,这能让我们在语句中插入中文
#-*- coding: utf-8 -*-

2.用import turtle导入turtle库

3.绘图窗口的原点(0,0)在正中间。默认情况下,海龟向正右方移动。

4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令
(1)运动命令:

forward(d)

向前移动距离d代表距离

backward(d)

向后移动距离d代表距离

right(degree)

向右转动多少度

left(degree)

向左转动多少度

goto(x,y)

将画笔移动到坐标为(x,y)的位置

stamp()

绘制当前图形

speed(speed)

画笔绘制的速度范围[0,10]整数

(2)画笔控制命令:

down()

画笔落下,移动时绘制图形

up()

画笔抬起,移动时不绘制图形

setheading(degree)

海龟朝向,degree代表角度

reset()

恢复所有设置

pensize(width)

画笔的宽度

pencolor(colorstring)

画笔的颜色

fillcolor(colorstring)

绘制图形的填充颜色

fill(Ture)

fill(False)

circle(radius, extent)

绘制一个圆形,其中radius为半径,extent为度数,例如若extent为180,则画一个半圆;如要画一个圆形,可不必写第二个参数

5.几个例子
1)画一个边长为60的三角形
#-*- coding: utf-8 -*-
importturtle
a=60
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)

2)画一个边长为60的正方形,并填充为红色,边框为蓝色
#-*- coding: utf-8 -*-
importturtle
turtle.reset()
a= 60
turtle.fillcolor("red")
turtle.pencolor("blue")
turtle.pensize(10)
turtle.fill(True)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.fill(False)

6.练习:
1)画一个五边形
2)画一个六边形
3)任意输入一个正整数m(>=3),画一个多边形(m条边)
4)画一个五角星,如下所示,注意填充为红色
5)画一个中国象棋棋盘,如下图所示,其中汉字不必显示出来:
6)绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。注意根据实际效果调整圆形的大小和位置。本回答被提问者采纳
参考技术C

2)画一个边长为60的正方形,并填充为红色,边框为蓝色:

import turtle
turtle.reset()
a=60
turtle.fillcolor("red")
turtle.pencolor("blue")
turtle.pensize(10)
turtle.begin_fill()
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.end_fill()

你好,按照你的程序来做不能正常运行,加粗部分是我改正的,才能符合题意。

以上是关于python 爬虫求教的主要内容,如果未能解决你的问题,请参考以下文章

自己写了一个爬虫,求教如何在网页上爬取动态加载的信息。

求教python,如何用python自动下载文件

python selenium问题求教

求教一个java中BeanUtils转换器的问题

求教 探讨python tkinter的messagebox

python模拟登录博客园(附:问题求教)