ronald627 发表于 2020-4-24 17:21:32

56课爬虫的find问题

56课里面没有用正则,用了一个find的方法去匹配页面
但是我为什么用find出来的都是数字啊???代码如下,这个a输出来的全都是数字,而视频里面输出来的事匹配到是偏移量后的内容,这什么意思

url = "http://jiandan.net/ooxx"

req = urllib.request.Request(url)
req.add_header("User-Agent",
               "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36")


response = urllib.request.urlopen(req)
html = response.read().decode("utf-8")
a = html.find("current-comment-page") + 23
print(a)

返回:5797

老八秘制 发表于 2020-4-24 17:23:54

现在煎蛋的网址没规律了,而且还有JS加密,建议换网站

ronald627 发表于 2020-4-24 17:26:30

老八秘制 发表于 2020-4-24 17:23
现在煎蛋的网址没规律了,而且还有JS加密,建议换网站

我换了其他站点,也是find()返回来感觉是一串数字,这个是因为加密导致的吗? 还是我用法有问题。返回出来的感觉有点对不上啊

老八秘制 发表于 2020-4-24 17:27:23

ronald627 发表于 2020-4-24 17:26
我换了其他站点,也是find()返回来感觉是一串数字,这个是因为加密导致的吗? 还是我用法有问题。返回出 ...

你换的是哪个网站,现在大多数网站都有反爬的

ronald627 发表于 2020-4-24 17:30:31

老八秘制 发表于 2020-4-24 17:27
你换的是哪个网站,现在大多数网站都有反爬的

我随便百度上找了一个。find()这里返回的我看视频里面返回页码一类的 但是我这里就返回了一个数字 但如果直接打印完整print(html)那完整页面里面是可以搜索到那个urrent-comment-page 字段。是因为反扒所以返回的内容对不上了?主要是我看视频上的弹幕,有人在2020年2月还说成功了。。。我就不知道是不是我使用上有问题了。。。

ronald627 发表于 2020-4-24 17:43:01

老八秘制 发表于 2020-4-24 17:27
你换的是哪个网站,现在大多数网站都有反爬的

url = "http://jiandan.net/ooxx"

req = urllib.request.Request(url)
req.add_header("User-Agent",
               "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36")

response = urllib.request.urlopen(req)
html = response.read().decode("utf-8")
str = "current-comment-page"
if str in html:
    print(1)

想请教下,我用着中方法能匹配到。。。current-comment-page这个字段。。。我想拿后面的数字这个还有其他办法吗?

老八秘制 发表于 2020-4-24 17:54:00

ronald627 发表于 2020-4-24 17:43
url = "http://jiandan.net/ooxx"

req = urllib.request.Request(url)


现在很难找到那种程序容易访问并爬取的网站……建议mzitu.com做练习

ronald627 发表于 2020-4-24 19:41:26

老八秘制 发表于 2020-4-24 17:54
现在很难找到那种程序容易访问并爬取的网站……建议mzitu.com做练习

刚才试了一下 。。。成功了。。。开始没理解find()的用法。。。正确使用以后煎蛋可以解析出来图片页数和图片地址。。。

PFBZSC 发表于 2020-4-25 20:24:00

find的返回值就是int类型的,是你所找的内容的下标索引值,你找到他的索引值之后加上23,拿到的当然就是数字,你可以用[:]来分割字符串,这样就能取出内容
页: [1]
查看完整版本: 56课爬虫的find问题