Wistain
2021-08-14 09:34
采纳率: 66.7%
浏览 82
已结题

爬虫如何在url中加入变量?


import requests
import re
import csv

a = input()

url = "f'https://movie.douban.com/top250?start={a}&filter="
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67"
}
resp = requests.get(url, headers=headers)
page_content = resp.text

obj = re.compile(r'<li>.*?<span class="title">(?P<name>.*?)</span>.*?<br>(?P<year>.*?)&nbsp;/&nbsp;.*?'
                 r'<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*?<span>(?P<number>.*?)</span>', re.S)
result = obj.finditer(page_content)
f = open("data.csv",mode="w",encoding="utf-8",newline="")
csvwriter = csv.writer(f)
for it in result:
    #print(it.group('name'))
    #print(it.group('year').strip()) #删除开头或是结尾的字符(默认为空格或换行符)
    #print(it.group('score'))
    #print(it.group('number'))
    dic = it.groupdict()
    dic['year'] = dic['year'].strip()
    csvwriter.writerow(dic.values())
f.close()
print("Over!")

其中url部分url = "f' 豆瓣电影 Top 250 https://movie.douban.com/top250?start=%7Ba%7D&filter=%22%E4%B8%BA%E4%BB%80%E4%B9%88%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF%EF%BC%8C%E4%B8%8D%E8%83%BD%E6%9B%B4%E6%94%B9a%E7%9A%84%E5%80%BC%EF%BC%9F

  • 收藏

4条回答 默认 最新

  • yeanky 2021-08-14 09:49
    已采纳

    f 在字符串外面

    a = input() 
    url = f'https://movie.douban.com/top250?start={a}&filter='
    

    或者

    a = 'abc'
    b = 'efg'
    c = 'jkl'
    url = '{f}d{s}hi{t}'.format(f=a, s=b, t=c)  # 带关键字
    url = '{}d{}hi{}'.format(a, b, c)     # 按顺序格式化
    url = '{0}d{2}hi{1}'.format(a, c, b)    # 传入参数的索引
    

    如果有用请点击采纳谢谢!

    已采纳该答案
    1 打赏 评论
  • Cresyeal 2021-08-14 09:42

    字符串格式化:

    f"I am {name}"
    "I am {0}".format(name)
    

    f外不需引号
    如果有用请采纳

    1 打赏 评论
  • 指过三千繁星 2021-08-14 09:43

    尝试一下,url也是一个字符串,使用三种格式化字符串就行,这里我介绍一种

    question='baidu'
    url=f'http://www.{question}.com'
    

    这是一个搜索百度网站的例子,你可以举一反三尝试一下

    1 打赏 评论
  • 指过三千繁星 2021-08-14 09:44

    img

    1 打赏 评论

相关推荐 更多相似问题