网页爬虫抓取百度图片(请求抓取的url页面要抓取,read() )
优采云 发布时间: 2021-12-16 12:56网页爬虫抓取百度图片(请求抓取的url页面要抓取,read()
)
一、Python请求抓取URL页面
要获取URL,首先在Python中模拟对URL的请求
#!/usr/bin/python
# -*- coding:utf-8 -*-
import httplib
class NewsBaidu(object):
def __init__(self):
super(NewsBaidu,self).__init__()
def request(self):
conn = httplib.HTTPConnection('news.baidu.com') #请求的host
request_url = '/' #请求的网页路径
body = '' #请求的参数
headers = {} #请求所带的头信息,该参数是一个字典
conn.request('GET',request_url,body,headers)
result = conn.getresponse()
print u'获取百度新闻'
print result.status
print result.reason
if __name__ == '__main__':
nb = NewsBaidu()
nb.request()
运行效果
状态=200,表示请求成功,结果读取()
二、分析页面HTML
1、我们想要捕获的内容是百度新闻左侧列表的标题和href
2、加载re模块并定期匹配我们想要的内容。让我们来看看HTML样式的第一个
这是我们要捕获的页面上部的HTML。可以看到,总理讲话的科技成果将走出"闺房",收录我们想要的内容。[总理讲话的科技成果将走出“闺房”,href[]的内容以常规形式摘录
pattern = re.compile(r'<strong>.*?href="(.*?)" target="_blank" class="a3" mon="ct=1&a=1&c=top&pn=[0-9]+">(.*?)</a>.*?strong>',re.S)
在下面的部分中,我将不分析要捕获的HTML内容。原理是一样的
三、源代码
<p>#!/usr/bin/python
# -*- coding:utf-8 -*-
import httplib
import urllib
import re
class NewsBaidu(object):
def __init__(self):
super(NewsBaidu,self).__init__()
self.f = open(u'百度新闻.txt','a')
def request(self):
try:
conn = httplib.HTTPConnection('news.baidu.com') #请求的host
request_url = '/' #请求的网页路径
body = '' #请求的参数
headers = {} #请求所带的头信息,该参数是一个字典
conn.request('GET',request_url,body,headers)
result = conn.getresponse()
print u'获取百度新闻'
print result.status
print result.reason
#print result.read()
if result.status == 200:
data = result.read()
self.main(data)
except Exception,e:
print e
finally:
conn.close()
self.f.close()
def main(self,data):
print u'获取中...'
pattern = re.compile(r'<strong>.*?href="(.*?)" target="_blank" class="a3" mon="ct=1&a=1&c=top&pn=[0-9]+">(.*?)</a>.*?strong>',re.S)
items = re.findall(pattern,data)
content = ''
for item in items:
content +=item[1].strip()+'\t'+item[0].strip()+'\t\n'
pattern = re.compile(r'(.*?)',re.S)
items = re.findall(pattern,data)
for item in items:
pattern = re.compile(r'^http://.*