http://www.pythonchallenge.com/pc/def/linkedlist.html
python challenge 04 链接在上面 点进去之后 按照网站的意思就是需要把html修改成php 然后我们可以进入一个新的网站 然后 点击网站中的图片 会跳出来and the next nothing is 44827 然后修改网页url之后还是类似的话 所以可以大致知晓我们需要通过python来实现半自动化的爬取
1 问题的分析
首先我们需要做到一个网站的爬取 我们要不断的爬取网站的内容然后把网站爬取到的内容再赋值给url 使用一个while true 的循环不断进行 然后再通过正则表达式 如果网页中不再有数字了 就进行循环的跳出
2代码的分析
import re
import urllib.request
# 这一题 就是相当于自动化的实现一些操作
number=1234
target = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
while True:
if not number:
break
else:
url = urllib.request.urlopen(url=target + str(number)).read().decode()
# 获取到的 就是 当前的html 源代码接下来我们要进行提取其中的数字
result=re.findall('[0-9]+',url,re.DOTALL)
new ="".join(result)
number=new
print(url)
然后我们来分析代码 我们需要用到的是re 和urllib.request 这两个库 re库就是正则表达式 urll.request 则是获取网页信息的一个库 现在看程序 我们先把1234 拿出来 在循环中我们对网站的信息爬取然后不断的通过循环更新我们的number 然后把number重新赋值到网址里面 跳出条件就是如果不是number
中间会来一句提示把数字进行更改 然后我们把number=1234 再修改成别的数据就可以了