跟着锁薇姐姐学的爬取返利网h1标签信息~

# _*_ coding:UTF-8 _*_

import urllib.requestimport urllib.errorimport refrom bs4 import BeautifulSoupimport timeimport socket

#获取主页的源码fanly_url = "http://zhide.fanli.com/p" #多页format_url = "http://zhide.fanli.com/detail/1-" #商品链接

class Faly(): #首字母大写    def __init__(self): #初始化构造函数        self.user_agent = ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36‘ #头部信息        self.html_data = [] #放置商品信息的列表

#获取主页的源码    def get_html(self,start_page=1 ,end_page=7):        for i in range(start_page,end_page+1):            rt = urllib.request.Request(fanly_url+str(i)) #用地址创建一个对象            rt.add_header(‘User_Agent‘,self.user_agent)            try:                my_date = urllib.request.urlopen(rt).read().decode(‘UTF-8‘) #打开网页,获取源码                #print(my_date) #获取网页源码                self.html_data.append(my_date)                time.sleep(2)                socket.setdefaulttimeout(15)            except urllib.error.URLError as e:                if hasattr(e,‘reason‘): #判断异常是否存在的一个函数                    print(u"连接失败",e.reason)        return str(self.html_data)

#html = Faly().get_html()

#获取产品的超链接class GetData():    def __init__(self):        self.html = Faly().get_html() #获取源码        self.href = [] #放置六位数字的列表        self.ls = []        self.url = []    #获取产品的超链接    def get_hrefurl(self):        reg = r‘data-id="\d{6}"‘ #商品6位数字正则        result = re.compile(reg) #编译,提高效率        tag = result.findall(self.html)        #tag = re.findall(result,self.html)        #print(tag)        for i in tag:            self.href.append(i)            #print(self.href)

#去重        reg2 = r"\d{6}"        result2 = re.findall(reg2,str(self.href))        if len(result2):            for data in result2:                if data not in self.ls:                    self.ls.append(data)                    url = format_url+str(data) #完整的商品链接                    self.url.append(url)                    #print(self.url[-1])        return self.url

#获取商品信息class Href_mg():    def __init__(self):        self.list = GetData().get_hrefurl()        self.txt_list = [] #商品信息    def show_mg(self):        for item in range(len(self.list)):            if len(self.list):                url = str(self.list[item])                mg = urllib.request.Request(url)                try:                    req = urllib.request.urlopen(mg).read()                    soup = BeautifulSoup(req,"html.parser")                    txt = soup.find_all(‘h1‘) #找标签                    self.txt_list.append(txt)                    print(self.txt_list[-1]) #打印商品列表                except urllib.error.URLError as e:

print(e.reason)        return str(self.txt_list)

if __name__ == "__main__": #判断文件入口    path = "yaozhi.txt"    with open(path,‘a‘) as file:        data = Href_mg().show_mg() #获取产品的内容        reg4 = r‘<.*+>‘        data_s = data.replace(u‘\xa0‘,u‘‘).replace(‘,‘,‘\n‘).replace(‘全网最低‘,‘‘).replace(‘[‘,‘‘).replace(‘]‘,‘‘).replace(‘ ‘,‘‘).strip()        file.write(data_s)
时间: 2024-10-05 05:58:28

跟着锁薇姐姐学的爬取返利网h1标签信息~的相关文章

爬取当当网的图书信息之结尾

由于当当网上的图书信息很丰富,全部抓取下来工作量很大.只抓取其中的一类 在Main()方法里面 首先用户输入种子URL string starturl = Console.ReadLine(); 构建数据库上下文对象 BookStoreEntities storeDB = new BookStoreEntities(); 获取图书类的URL string html = Tool.GetHtml(starturl); ArrayList list = new ArrayList(); list =

爬取当当网的图书信息之导读

什么是爬虫 爬虫是用来抓取互联网上信息的程序.程序员可以利用爬虫来干很多事,有些挺酷炫,这里贴出知乎相关问题的网址https://www.zhihu.com/question/29372574 爬虫的工作流程 主要的分三步走,第一步把网页下载下来,第二步抽取认为有用的信息,第三步将相关信息保存下来.看是不是很简单嗯. 前期技术储备 1.如何把网页下载下来? 这里我们使用相关的library模拟人使用浏览器对服务器发送请求,然后获得相关网页的源代码.我使用C#语言编程,采用封装强度最高的最简单的W

爬取当当网的图书信息之工作流程介绍

前往http://book.dangdang.com/我们可以看到当当网上面的图书种类非常丰富 我们是计算机类图书为例子,那么计算机类图书页面的URL  http://book.dangdang.com/01.54.htm?ref=book-01-A是我们的种子URL 当我们进入这个页面可以看到很多计算机类图书,什么都别说了,都抓取下来,然后在进入子品类页面继续抓取信息,我们以程序涉及品类为例 进来之后我们可以看到大量的图书,而且在页面上方我们可以看到100页,可不止这么一点还有99页没有显示出

爬取当当网的图书信息之封装一个工具类

把这个类名取为Tool 封装一个下载网页的方法GetHtml public static string GetHtml(string url) { try { WebClient wb = new WebClient(); return wb.DownloadString(url); } catch { return ""; } } 传入的是这个网页的URL,这个方法能帮我们把网页下载下来封装一个匹配图书类URL的的方法 public static ArrayList GetList(

爬取赶集网的租房信息

碰到的问题: 1.list 越界 查询后加了个 try: except IndexError: pass 一个简单的爬虫程序 1 import requests 2 from lxml import etree 3 import csv 4 import os 5 6 7 #创建一个csv文件 如果文件步存在则自动创建 8 f = open("house3.csv", "w+") 9 10 #构造一个csv对象 11 csv_file = csv.writer(f)

爬取当当网的图书信息之实体设计

首先新建一个控制台应用程序WebSpider 这里我选用控制台应用程序,使用控制台非常简单,为了方便监控把抓取到的一些信息给打印出来. 实体设计 BookClass public int BookClassId { get; set; } public string BookClassName { get; set; } public string Url { get; set; } public int Pages { get; set; } public virtual List<Book>

python爬取科学网基金项目信息

听说学校快开学了...任务再不快点做的话,估计开学要被导师骂死,所以要查一下近年来自己研究领域的基金中标情况! 遇到的问题 导师给了个科学网的网址让我自己查基金,查完告诉他结果,可是! 在科学网查询的时候,发现只要同一IP短时间内访问 10次 左右,网页就会说你 访问太频繁 了...然后 等个10分钟左右才能重新访问 在科学网碰壁后,我先是查了下有没有别的基金查询网站,然后发现在一众网站中,还是科学网的信息更全面一点(nsfc,medsci,letpub等),然后就还是爬虫叭!!! 1. 了解科

Python爬虫入门 | 5 爬取小猪短租租房信息

小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/1.爬取租房标题 按照惯例,先来爬下标题试试水,找到标题,复制xpath.多复制几个房屋的标题 xpath 进行对比: //[@id="page_list"]/ul/li[1]/div[2]/div/a/span//[@id="page_list"]/ul/li[2]/div[2]/div/a

使用python爬取东方财富网机构调研数据

最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了javascript网络访问,然后将服务器返回的数据插入网页,无法通过网址直接获取对应页的的页面数据. 通过chrome的开发者工具,我们可以看到点击下一页按钮背后发起的网页访问: 在点击下一页时,浏览器向地址发起了访问.我们分析一下这个地址的结构: http://data.eastmoney.co