python学习之路

#因为要抓取数据的原因。而PHP对这方面的效果并不是很好。所以我就学习一下python的爬虫。下面写一下我的辛酸历程。
注:有很多代码都是百度过来的,我只是说一下我在其中遇见的BUG
1.上官网下载好python3.6.5之后遇见的第一个问题就给我打脸了。
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if (i != k) and (i != j) and (j != k):
print i, j, k
报的还是语法错误。可是我是从菜鸟教程那里面学习过来的啊。不可能会出错啊0.0
经过漫长的百度。终于找到问题了。

在这里插入图片描述
对,没错。就是版本问题。所以新手老铁们开发的时候一定要注意。2.7的python和3.6的python中间会出现很多不知名的错误。如果你觉得自己的代码没有错误。那么就可以查一下版泵的问题了。大神请忽略

2.先把自己从网上的代码复制进来
##coding:utf-8
import requests
######
#爬虫v0.1 利用urlib 和 字符串内建函数
######
def getHtml(url):
# 获取网页内容
# page = urllib.urlopen(url)
# html = page.read()
# return html
data = requests.get(url)
return data.content.decode(‘utf-8’)

				def content(html):
				    # 内容分割的标签
				    str = '<article class="article-content">'
				    content = html.partition(str)[2]
				    str1 = '<div class="article-social">'
				    content = content.partition(str1)[0]
				    return content  # 得到网页的内容
				
				
				def title(content, beg=0):
				    # 匹配title
				    # 思路是利用str.index()和序列的切片
				    try:
				        title_list = []
				        while True:
				            num1 = content.index('】', beg) + 3
				            num2 = content.index('</p>', num1)
				            title_list.append(content[num1:num2])
				            beg = num2
				
				    except ValueError:
				        return title_list
				
				
				def get_img(content, beg=0):
				    # 匹配图片的url
				    # 思路是利用str.index()和序列的切片
				    try:
				        img_list = []
				        while True:
				            src1 = content.index('http', beg)
				            # src2 = content.index('/></p>', src1)
				            src2 = content.index('[/img]', src1)
				            img_list.append(content[src1:src2])
				            beg = src2
				
				    except ValueError:
				        return img_list
				
				
				def many_img(data, beg=0):
				    # 用于匹配多图中的url
				    try:
				        many_img_str = ''
				        while True:
				            src1 = data.index('http', beg)
				            src2 = data.index(' /><br /> <img src=', src1)
				            many_img_str += data[src1:src2] + '|'  # 多个图片的url用"|"隔开
				            beg = src2
				    except ValueError:
				        return many_img_str
				
				
				def data_out(title, img):
				    # 写入文本
				    with open("./data.txt", "a+", encoding='utf-8') as fo:
				        fo.write('\n')
				        for size in range(0, len(title)):
				            # 判断img[size]中存在的是不是一个url
				            if len(img[size]) > 70:
				                img[size] = many_img(img[size])  # 调用many_img()方法
				            fo.write(title[size] + '$' + img[size] + '\n')
				
				
				content = content(getHtml("https://bh.sb/post/10475/"))
				title = title(content)
				img = get_img(content)
				data_out(title, img)
				实现了爬的单个页面的title和img的url并存入文本
				##来源(回去找了一遍。并没有找到0.0)

其中有两个地方有过修改,
1.import requests 我引入的是这个方法
2.open函数后面追加了encoding=‘utf-8’,否则写入的时候会报错
文件写入格式报错
好了,这也算是我开始写python爬虫的第一篇文章了。虽然代码大多数都是借鉴的。不过还是让我收获良多。暂时就写到这了。老大催着交其他项目了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值