网页爬虫抓取百度图片(请求抓取的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://.*

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线