如何使用Python写一个爬虫软件

如何写一个爬虫软件


一、了解一个网页的各个标签:这里写代码片通过了解各个网页的标签知道如何通过标签来过滤自己想要的的内容。

1. 图片标签:http://www.w3school.com.cn/tags/tag_img.asp

示例:
< img src="/i/eg_tulip.jpg"  alt="上海鲜花港 - 郁金香> 
图片标签必须有src和alt属性,src为图片的链接,alt为代替图片的文本

2. 超链接标签:http://www.w3school.com.cn/tags/tag_a.asp

示例:
< a href="http://www.w3school.com.cn">W3School</a>
html中的属性:
属性描述
charsetchar_encodingHTML5 中不支持。规定被链接文档的字符集。
coordscoordinatesHTML5 中不支持。规定链接的坐标。
hrefURL规定链接指向的页面的 URL。
hreflanglanguage_code规定被链接文档的语言。
mediamedia_query规定被链接文档是为何种媒介/设备优化的。
namesection_nameHTML5 中不支持。规定锚的名称。
reltext规定当前文档与被链接文档之间的关系。
revtextHTML5 中不支持。规定被链接文档与当前文档之间的关系。
shapedefault/rect/circle/poly规定被下载的超链接目标。
target_blank/_parent/_self/_top/framename规定在何处打开链接文档。
typeMIME type规定被链接文档的的 MIME 类型。

一般来说爬虫主要抓取的便是这两种标签,其他的以后补充,这里主要针对这两种标签写爬虫软件。


二、如何使用python过滤这两种标签

1. 学会使用python的urllib,urllib2库函数:

1.1 **urllib库:**英文文档:http://docspy3zh.readthedocs.io/en/latest/library/urllib.request.html,中文文档:http://python.usyiyi.cn/python_278/library/urllib.html
获取网页的内容
1.2 **BeautifulSoup库:**https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
解析网页内容

三、使用python扒网页

1.使用python扒图片:

1.1 获取网页的内容:
#!/usr/bin/env python3
# coding=utf-8
import urllib.request as url
#打开网页获得一个文件对象
web_file = url.urlopen('http://www.baidu.com'); 
#依次读取文件中的一行
for line in web_file:
    print(line)
#输出文件对象,而不是文件的内容
print(web_file) 
1.2 使用正则表达式过滤图片url
import re
import urllib.request as url

context = url.openurl("http://www.baidu.com").read()
imgs = re.findall("<img.*src=.*?>",context);
for img in imgs:
	re.findall("src")

1.3 使用BeautifulSoup过滤图片标签
from bs4 import BeautifulSoup
import urllib.request as urlrq

def openurl_and_getsoup(url):
    web = urlrq.urlopen(url)
    return BeautifulSoup(str(web.read()),"lxml")
    
url = "http://www.baidu.com"
soup = openurl_and_getsoup(url)
#获取所有的img标签及内容并存储在list中
all_img = soup.find_all(['img'])
#soup.img['src']#可以获取一个图片的url
print(soup.img)
print(all_img)
1.4 下载图片

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值