简单爬虫思路

610次阅读
没有评论
简单爬虫思路

1、预期获取的资源的url
2、下载url的html源文件(文本形式)
3、从已下载的html源文件里获取标签或内容(bs4函数(python3))
 soup=BeautifulSoup #创建对象
 body=soup.body  #html基本框架形式、格式
 data_main=body.find() #利用浏览器的审查元素 对应内容(部分)
 for i, table_info in enumerate(tables):  #利用enumerate添加序号
  gsmc = tds[2].find(‘a’).get_text()  #根据索引找内容

4、给url提交参数
for keyword in KEYWORDS:
 #url上提交的参数(类似于asp?id=1&sugtime=1503299916325)           
        paras = {‘jl’:args[0],’kw’:keyword,’p’:args[1]}
5、调用get_content(html)函数获取预期资源
 利用for循环遍历下载下来的centent文本信息获取预期资源
拓展:datetime获得start/end time
     爬取多个网页或内容  可使用from multiprocessing import Pool

代码部分

没解决(删去列表元素两边的空格)

import requests,re

from requests.exceptions import  ReadTimeout,HTTPError,RequestException

try:

    #爬虫部分

    headers={‘User-Agent’:’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0′}

    response = requests.get(‘url’,headers=headers,timeout=10)

    print(‘请求成功! 状态码%s’%response.status_code)

    html=response.text

    html1=re.sub(“n*”,”,html)

    #newhtml=re.sub(“s*”,”,html2)

    #匹配书名 作者 出版日期 出版社 简介    result1为list类型,re.S解决爬取多行时的换行问题

    result1 = re.findall(‘<div class=”cover”>.*?href=”(.*?)”.*?<h4.*?>(.*?)</h4>.*?<span.*?>(.*?)</span>.*?<span.*?>(.*?)</span>.*?<span.*?>(.*?)</span>.*?<p.*?>(.*?)</p>’,html1,re.S)

    #result1 = re.search(“alt=(.*?)>”, html, re.S)#另一种定位书名

    for result in result1:

        print(result)    #result为tuple类型

    #报错部分

except ReadTimeout:

    print(‘Time Out!!! 请检查网络)’)

except HTTPError:

    print(‘HTTP Error’)

except RequestException:

    print(‘Error!!!请求出错了,不止一种绕过方法’)

返回的结果:

请求成功! 状态码200

(‘url/subject/27107374/?icn=index-editionrecommend’,

‘鲤·猫知道一切 ‘, 

‘张悦然 主编’, 

‘2017-8’, ‘北京十月文艺出版社’, 

‘有时深居简出,有时逍遥浪荡;装得了高冷,卖得了嗲萌;有时慵懒散漫,有时雷厉风行;我们爱它宠它,却可能永远不会懂它……——只有猫,知道一切。张悦然出品《鲤·猫知道一切》,携手时下活力四溢的人气创作者和他们的猫主子,用趣味横生的故事,让猫告诉你一切——◇深度访谈张悦然, 身为“猫奴”二十年,揭秘“猫的法则”◇超人气日籍华语作家吉井忍◇旅日文艺…’)

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-11-01发表,共计1743字。
新手QQ群:570568346,欢迎进群讨论 Python51学习