python爬虫学习(2):输入电影名获得电影信息
输入电影名获得电影信息
在上一篇博文:python爬虫学习(1):使用bs4爬豆瓣电影信息 的代码基础上做出以下改动:1.输入电影名获得含有电影信息的网址链接;2.爬取简介
获得含有电影信息的网址链接
代码如下:
def search_url():
n_url=input()
s_url=‘https://www.douban.com/search?q=’+n_url
s_data=requests.get(s_url).text
s_soup=BeautifulSoup(s_data,‘html.parser’)
url_div=s_soup.find(class_=“result”)
url_soup=url_div.find(‘a’)
url=url_soup.get(‘href’)
return url
学习过程中,电影搜索网站的网址使用
s_url='https://movie.douban.com/subject_search?search_text=' +n_url+ '&cat=1002'会出错,查看网页源代码发现没有电影信息的链接(猜测与重定向有关),因此改为
s_url='https://www.douban.com/search?q='+n_url'。
爬取电影简介
sum_soup=soup.find(property=“v:summary”)
print(sum_soup.string)
打印结果为none,改为sum_soup.text后,打印出简介。下面简单了解.string与.text。
.string与.text
参考 https://www.crifan.com/python_beautifulsoup_string_vs_text/
beautifulsoup中,对外接口,没有提供text这个属性,只有string这个属性值;
beautifulsoup内部才有text这个属性,只供内部使用 。使用text值,应该调用对应的get_text()。
.string的一些抓取问题
参考 https://segmentfault.com/q/1010000005915466/a-1020000005915727
当解决标签里内嵌标签的抓取字符串问题时,可有以下两种方式:1.extract()移除多余字符串;2.运用列表。
完整代码
关于if __name__ == '__main__'
参考 http://blog.konghy.cn/2017/04/24/python-entry-program/
if __name__ == '__main__': 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。
完整代码
import requests
from bs4 import BeautifulSoup
#获得网页链接
def search_url():
n_url=input()
s_url=‘https://www.douban.com/search?q=’+n_url
s_data=requests.get(s_url).text
s_soup=BeautifulSoup(s_data,‘html.parser’)
url_div=s_soup.find(class_=“result”)
url_soup=url_div.find(‘a’)
url=url_soup.get(‘href’)
return url
#定位信息,查找定位
def search_info(url):
data=requests.get(url).text
soup=BeautifulSoup(data,“html.parser”)
film_soup=soup.find(property=“v:itemreviewed”)
info_soup=soup.find(id=“info”)
director_soup=info_soup.find(class_=“attrs”)
director_a=director_soup.find_all(‘a’)
time_soup=info_soup.find(property=“v:runtime”)
attr_div=soup.find(class_=“actor”)
attr_a=attr_div.find_all(‘a’)
d_name=’’
for dir_name in director_a:
d_name=d_name+dir_name.string+’,’
a_name=’’
for name in attr_a:
a_name=a_name+name.string+’,’
sum_soup=soup.find(property=“v:summary”)
sum=sum_soup.text.replace(" “,”")
all=‘网页链接:’+url+’\n’+‘电影名称:’+film_soup.string+’\n’+‘导演:’+d_name+’\n’+‘主演:’+a_name+’\n’+‘片长:’+time_soup.string+’\n’+‘简介:’+sum+’\n’
return all
if name == ‘main’:
al = ‘’
url = search_url()
al = search_info(url)
print(al)
- Python爬虫学习笔记 -- 爬取豆瓣电影top250的信息
- Python爬虫学习---------根据分类爬取豆瓣电影的电影信息
- python 爬虫学习三(Scrapy 实战,豆瓣爬取电影信息)
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- python爬虫学习test1-抓取豆瓣电影 Top 250名次、影片名称、年份、导演等字段
- Python爬虫入门2 | 爬取豆瓣电影信息
- Python学习笔记 第二部分 - 正则表达式 与 爬虫小实例(抓取豆瓣电影中评分大于等于8分的影片)
- python爬虫实战---豆瓣电影top250的电影信息抓取
- 一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
- 爬虫实战【11】Python获取豆瓣热门电影信息
- Python爬虫信息输入及页面的切换方法
- Python3爬虫学习之MySQL数据库存储爬取的信息详解
- python爬虫小例子:爬取猫眼电影Top10电影相关信息(代码超详细解读)
- 【python爬虫学习笔记】04 BeautifulSoup库入门及信息的标记方法
- python学习-获取时光网电影TOP100电影信息
- Python爬虫学习-豆瓣电影TOP250数据爬取(存入mongo数据库中)
- 【极客学院】-python学习笔记-3-单线程爬虫 (request安装遇到问题及解决,应用requests提取信息)
- 爬虫学习日记1-豆瓣top250电影信息爬取
- python爬虫学习 之 定向爬取 股票信息
- Python学习之路 (六)爬虫(五)爬取拉勾网招聘信息