danran 发表于 2019-3-18 21:18

我写的第一个py爬新浪新闻源码


我就想发帖纪念一下我写的第一个python爬虫,新手可以拿去学习一下,如果是大神希望可以指导我优化一下 哈哈大家相互学习学习{:1_918:}

import urllib.request#导入模块
import re
data=urllib.request.urlopen("http://news.sina.com.cn").read()   #读取网页
data=data.decode("utf-8","ignore")#编码
pat='href="(https://news.sina.com.cn/.*?[.shtml])"'   #正则表达式
allurl=re.compile(pat).findall(data)
for i in range(0,len(allurl)):
    try:
      data2=urllib.request.urlopen(allurl).read()
      data2 = data2.decode("utf-8", "ignore")
      pat2 = 'og:title" content="(.*?)"'
      tittle = re.compile(pat2).findall(data2)
      if(len(tittle)>=1):
            print(tittle + "\n" + allurl)      #获取标题并且输出
      else:
            print("标题爬取失败"+ "\n" + allurl)
    except urllib.error.URLError as e:# 捕获异常并且输出
      if hasattr(e, "code"):
            print(e.code)
      if hasattr(e, "reason"):
            print(e.reason)


jinzilao 发表于 2019-3-21 15:29

danran 发表于 2019-3-19 12:31
怎么搞,求教

就是在每次请求的时候加一句time.sleep(3)每次尽量大于3秒也可以加个随机数

danran 发表于 2019-3-19 12:31

jinzilao 发表于 2019-3-19 09:53
测试的话还好,如果想长时间运行,恳请加个timesleep,这样对大家都好

怎么搞,求教

吾爱小洪 发表于 2019-3-18 21:30

可以的   我用nodejs也写过   加油

Loser2019 发表于 2019-3-18 21:32

向大佬低头!!!{:1_918:}{:1_918:}{:1_918:}

hill_king 发表于 2019-3-18 21:42

给大佬倒茶

mini5pusb 发表于 2019-3-18 21:59

我是新手,得向你多学习下

文西思密达 发表于 2019-3-18 22:05

大佬 ,请问输出之后在哪里?运行了没反应的

豫黄河 发表于 2019-3-18 22:18

大师,教教我怎么入门的

htss 发表于 2019-3-18 22:26

支持支持,坚决支持!!!!!

guzhenguo 发表于 2019-3-18 22:50

向大佬学习

danran 发表于 2019-3-19 09:02

addision 发表于 2019-3-18 22:05
大佬 ,请问输出之后在哪里?运行了没反应的

用python3的ide打开按f5运行
页: [1] 2 3
查看完整版本: 我写的第一个py爬新浪新闻源码