请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

微信公众号:
crossincode
 找回密码
 立即加入
查看: 1510|回复: 4

一个pyquery 遍历子标签的问题

[复制链接]

2

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2018-10-20 15:44:14 |显示全部楼层
今天在写一个猫眼电影的爬虫, 用pyquery去解析,但是有一个问题怎么都找不到解决办法,有大佬来看看吗?
如图1,我已经定位到了附件图1dl这一层了
hot = doc('#app > div > div.main > div > div:nth-child(1) > div.panel-content > dl ')

然后打算用children去遍历里面的dd标签获取每个dd里面的电影名称和评分
for item in hot.children():
    item = pq(item)
    film = item('.movie-title').text()  //电影名称
    score = item('.integer').text() + item('.fraction').text() //电影评分
    print(film,score)

但是遍历的时候输出的却只有一个item(本来是8个电影的,应该是8个item才对)
这一个item就包含了8个的信息

然后输出是这样的 :
无双 我的间谍前男友 铁血战士 宝贝儿 嗝嗝老师 找到你 雪怪大冒险 无敌原始人 8. 8. 5. 9. 9. 9.9 2 5 4 0 2
正确的格式应该是一个电影名加一个评分才对哎
感觉是这个遍历有问题 咋整?

图1

图1
回复

使用道具 举报

158

主题

37

好友

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-10-21 13:23:39 |显示全部楼层
hot.children、item、film、score,这里面每一个变量,你都把他们的值和类型 print 出来看,再分析如何处理。这就是调试的过程,前几天公众号里关于debug文章就讲过

光看着裸代码,谁都很难看出问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2018-10-21 15:55:54 |显示全部楼层
好嘞,后面又去调试,然后发现去抓movie-item这个属性就可以抓到了
另外还有一个问题,就是IP代理池的验证那里 http://ddns.oray.com/checkip 这个链接是怎么用的呢
# 请求检测 IP 网站
        try:
            req = requests.get(url=urls[0], proxies=proxy, timeout=2)
            assert req.status_code == 200
            res = self._extract_ip(req.text)
            assert bool(res) == True

        except:
            return False
这一段检测IP网站的意思是什么哎,我看不太懂,
我拿了一个IP去跑这一段 然后返回的是我本机的IP?
proxy = {
    'http':'115.46.76.173:80 '
}
http_check_url = 'http://ddns.oray.com/checkip'
r = requests.get('http://ddns.oray.com/checkip',proxies=proxy)
print(r.status_code)
print(r.text)
res = extract_ip(r.text)
print(res)
回复

使用道具 举报

158

主题

37

好友

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-10-21 21:56:44 |显示全部楼层
JasonYeung 发表于 2018-10-21 15:55
好嘞,后面又去调试,然后发现去抓movie-item这个属性就可以抓到了
另外还有一个问题,就是IP代理池的验证 ...

如果你看到的是本机ip,说明你这个ip没有起到伪装ip的作用
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2018-10-21 22:40:58 |显示全部楼层
本帖最后由 JasonYeung 于 2018-10-21 22:50 编辑
crossin先生 发表于 2018-10-21 21:56
如果你看到的是本机ip,说明你这个ip没有起到伪装ip的作用

我弄懂了 测试IP的网站由http和https的区别 谢谢crossin先生哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|Archiver|手机版|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2020-10-1 13:02 , Processed in 0.051403 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部