重庆做商城网站建设,叙述网站的建设意义所在,企业网络营销策划案例,网站建设百家号思路1. 要获得怎么样的数据2. 找到数据来源3. 模拟浏览器发送请求获得数据4. 处理数据#xff0c;保存数据第一步#xff1a;在这里数据是豆瓣top250中高于指定分数的电影信息信息有#xff1a;名称#xff0c;评分#xff0c;格言第二步#xff1a;数据在网页html中保存数据第一步在这里数据是豆瓣top250中高于指定分数的电影信息信息有名称评分格言第二步数据在网页html中这里我使用xpath语法分析htm代码提取数据即可当然也有其它方法比如找出页面请求的数据包抓包分析找出数据来源故猜测第k页的url只需start为25*(k-1)所以我们枚举url提取有效的数据。第三步获得网页源码是一般是发送get请求。故制定请求头找到url模拟浏览器发送数据def GetHelpfulElement(Html,socre):#根据html代码获得希望的element列表Xpathr//div[ classitem]//div[ classstar]/span[2][text(){}]/../../...format(socre)HtmlElementetree.HTML(Html)return HtmlElement.xpath(Xpath)def GetHtml(url):#根据url获得html字符串Headers{User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36}resprequests.get(url,headersHeaders)return resp.content.decode()最后一步就是代码了数据保存在date文件。mport requestsfrom lxml import etreefrom pprint import pprintimport re目的:爬取豆瓣top250中 评分高于指定值的电影名字导演演员信息评分。urlhttps://movie.douban.com/top250?start{}25的增加10次即可针对每个html字符串用xpath语法进行处理1.找出符合条件的element元素2.对element元素进行信息提取成字典形式3.把每一页的信息整理成一个列表追加即可def GetHelpfulElement(Html,socre):#根据html代码获得希望的element列表Xpathr//div[ classitem]//div[ classstar]/span[2][text(){}]/../../...format(socre)HtmlElementetree.HTML(Html)return HtmlElement.xpath(Xpath)def GetHtml(url):#根据url获得html字符串Headers{User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36}resprequests.get(url,headersHeaders)return resp.content.decode()def HandleList(Mylist):#处理xpath的获得的列表 返回第一个否则返回Nonereturn Mylist[0] if len(Mylist)!0 else Nonedef ElementToDict(Element):#一个elemengt信息转化为dictret{}htmletree.tostring(Element,encodingutf-8).decode()Elementetree.HTML(html)#不知道为什么只有这样每次函数得到的信息才不同RatingXpathr//span[classrating_num]/text()TitleXpathr//a/span[classtitle]/text()QuoteXpathr//span[classinq]/text()ret[rating:num]HandleList(Element.xpath(RatingXpath))ret[title] HandleList(Element.xpath(TitleXpath))ret[quote] HandleList(Element.xpath(QuoteXpath))return retdef ElementlistToDictlist(Elementlist):#element列表转化为有用的dict列表Mylist[]for i in Elementlist:Mylist.append(ElementToDict(i))return Mylistdef Save(Mydict):#保存一条信息Keylist [title, rating:num, quote]NameList [名称, 评分, 格言]with open(date.txt,a,encodingutf-8) as fp:for i in range(len(Keylist)):fp.write(NameList[i])fp.write( : )fp.write(Mydict[Keylist[i]] if Mydict[Keylist[i]]!None else )fp.write(\n)fp.write(\n)def run(score):#实现主要逻辑TempUrl rhttps://movie.douban.com/top250?start{}Dictlist []for numbers in range(10):Url TempUrl.format(numbers * 25)ElementList GetHelpfulElement(GetHtml(Url), score)TempDictList ElementlistToDictlist(ElementList)global totaltotallen(TempDictList)for i in TempDictList:Save(i)if __name__ __main__:RatingNumfloat(input(请输入最低评分:))total0print(请稍等...)run(RatingNum)print(共有,total,个结果。)