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免费测试